CentOS命令行安装配置KVM详细教程

简介:

系统为centos 6.4 64位 最小化安装  服务器为dell R720,所以网卡为em0,在vmware作为练习安装学习,同样可以,命令行不是为了显的牛B,而是不用考虑桌面兼容性和其他原因的影响

一、查看是否支持虚拟化

vmware开启方式虚拟化方式如下图,虚拟机下面可以用VNC连接安装系统,如果服务器在idc机房,因为和公司网络不在一个网段,所以vnc是连不上去的,另外kvm和桌面系统兼容性不清楚,有发生过卡死的情况,所以还是命令行,下面是一步一步的 操作过程,按着步骤肯定可以!

确定服务器是否支持虚拟化,如果没有查到,在bios里面开启

wKioL1O84vjzHjKuAAGmZxvywyg464.jpg


关闭selinux  SELINUX=disabled

vmx属于inter处理器,svm属于amd处理器

1
egrep  'vmx|svm'  /proc/cpuinfo

flags       :fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflushdts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lmconstant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperfpni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pciddca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm ida aratxsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid


二、安装kvm包

1
2
yum  groupinstall  "Development Tools"
yum  groupinstall  "Virtualization"  "Virtualization Client"  "Virtualization Platform"

virtualization //提供虚拟机的环境,主要包含qumu-kvm

virtualization-client//管理和安装虚拟机实例的客户端,主要有python-virtinst,virt-manager,virt-viewer

virtualization-platform//提供访问和控制虚拟客户端的接口,主要有libvirt,libvirt-client

安装完成后重启系统


三、检查安装后是否加载模块

1
lsmod| grep  kvm

kvm_intel              53484  12

kvm                   316506  1 kvm_intel

查看kvm正常运行

1
2
3
4
5
/etc/init .d /libvirtd  start
chkconfig libvirtd on
   
virsh -c qemu: ///system  list  
  Id    Name                           State
1
2
3
4
5
service libvirtd status 
libvirtd (pid  2944) is running...
  
chkconfig --list libvirtd
libvirtd        0:off   1:off   2:off   3:on    4:on    5:on    6:off


四、配置网卡为桥接

这里只是配置一个网卡,配置多个网卡方法一样,现在em1可以理解为交换机,其他guest都链接上面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
yum  install  bridge-utils.x86_64 acpid -y
 
brctl show
bridge name    bridge  id       STP enabled    interfaces
virbr0      8000.525400fe8dd9    yes      virbr0-nic
 
cp  /etc/sysconfig/network-scripts/ifcfg-em1  /etc/sysconfig/network-scripts/ifcfg-br0
 
cat  /etc/sysconfig/network-scripts/ifcfg-em1
  
DEVICE=em1
TYPE=Ethernet
UUID=****
ONBOOT= yes
NM_CONTROLLED=no
BOOTPROTO=static
BRIDGE=br0
DEFROUTE= yes
IPV4_FAILURE_FATAL= yes
IPV6INIT=no
NAME= "System em1"
HWADDR=****
1
2
3
4
5
6
7
8
9
10
11
12
13
14
cat  /etc/sysconfig/network-scripts/ifcfg-br0 
  
DEVICE=br0
TYPE=Bridge
ONBOOT= yes
NM_CONTROLLED=no
BOOTPROTO=none
IPADDR=****
PREFIX=**
GATEWAY=****
DNS1=114.114.114.114
DOMAIN=114.114.114.114
DEFROUTE= yes
NAME= "System br0"
1
2
service network restart
service acpid start   #电源管理

#查看网络连接

1
2
3
4
brctl show 
bridge name bridge  id         STP enabled    interfaces
br0         8000.74867af0c7a0   no          em1
virbr0      8000.525400cbfade    yes          virbr0-nic


检查ip转发是否开启

1
2
cat  /etc/sysctl .conf | grep  ip_forward
net.ipv4.ip_forward = 1
1
2
3
4
5
如果没有开启,则
vim  /etc/sysctl .conf
net.ipv4.ip_forward = 1
  
/sbin/sysctl  -p


两块网卡配置道理一样,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# service network restart           #重启时候要等半分钟
Shutting down interface em1:  bridge br0 does not exist!
                                                            [  OK  ]
Shutting down interface em2:                               [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface em1:                                 [  OK  ]
Bringing up interface em2:                                 [  OK  ]
Bringing up interface br0:                                 [  OK  ]
Bringing up interface br1:                                 [  OK  ]
# brctl show
bridge name    bridge  id       STP enabled    interfaces
br0         8000.74867af0db38   no      em1
                             vnet0
br1         8000.74867af0db39   no      em2
                             vnet1
virbr0      8000.525400fe8dd9    yes      virbr0-nic


五、配置自己的安装镜像(此步骤可略过)

为什么要自己配置源呢,因为至少现在centos6.5以下版本的源在sohu,163都被删了,问题是能找到自己系统版本的源

自己搭系统的iso服务器(http)

下载CentOS-6.5-x86_64-minimal.iso

1
2
3
4
mkdir  /data
cd  /data
wget http: //mirrors .sohu.com /centos/6 .5 /isos/x86_64/CentOS-6 .5-x86_64-minimal.iso 
mkdir  /mnt/cdrom


1
2
mount  -o loop -t iso9660  /data/CentOS-6 .5-x86_64-minimal.iso  /mnt/cdrom
cp  -r  /mnt/cdrom  /root/centos

修改这个文件,需要强制保存 wq!

1
2
3
4
5
6
7
vim  /root/centos/ .treeinfo   
[images-x86_64]
initrd = images /pxeboot/initrd .img
kernel = isolinux /vmlinuz
[images-x86_64]
kernel = isolinux /vmlinuz
initrd = isolinux /initrd .img


安装配置httpd

yum install httpd 

#只需要修改httpd.conf的292、318两行,welcome.conf 第8行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
vim  /etc/httpd/conf/httpd .conf
  
#DocumentRoot "/var/www/html"
DocumentRoot  "/mnt/cdrom"  
<Directory />
    Options indexes FollowSymLinks
    AllowOverride none
< /Directory >
<Directory  "/mnt/cdrom " >        
 
  
vim  /etc/httpd/conf .d /welcome .conf
  
  <LocationMatch  "^/+$" >
    Options +Indexes
    ErrorDocument 403  /error/noindex .html
< /LocationMatch >

service httpd start

开启iptables80端口,在浏览器输入ip即可查看,下面用URL安装,需要打开iptables的80端口,并且ip_forward要开启,

wKiom1O85MXx3HT7AAJddYmptHo023.jpg

 

六、安装kvm guest0

mkdir /var/kvm/

按照第五步安装方式:

virt-install -v -n bbotte -r 4096 --vcpus=4 --location=/root/centos --nographics --virt-type=kvm --disk path=/var/kvm/bbotte.img,size=80,sparse -w bridge:br0 --extra-args='console=tty0  console=ttyS0,115200n8' --connect qemu:///system

kvm名称:bbotte

内存:4G(如果宿主机内存小的话,guest就小点,要不会出错误提醒)

cpu:4颗

虚拟磁盘路径:/var/kvm/bbotte.img

磁盘大小:80G


没有做第五步操作,用搜狐源安装方式:

virt-install -v -n bbotte -r 4096 --vcpus=4 -l http://mirrors.sohu.com/centos/6.5/os/x86_64/  --nographics --virt-type=kvm --disk path=/var/kvm/bbotte.img,size=80,sparse -w bridge:br0 --extra-args='console=tty0 console=ttyS0,115200n8' --connect qemu:///system

下面即开始命令行下安装

1,选择语言

wKioL1O85QCD-X3DAAFR5VPsodQ922.jpg

2,选择安装方式,这里是自己配置的http,所以选URL

wKioL1O85Qqhy1yQAADe92vgG9E540.jpg

3,为主机配置ip地址

wKiom1O85ULyeQ35AAEq1xnHuQ0237.jpg

wKiom1O85UuR0vbBAAGxeLl605M906.jpg

4,输入安装的url,这里是http://ip,Tab到ok即可

wKioL1O85SOwA7CBAAEqsKvLwFQ512.jpg

5,在这里如果启用VNC的话安装会很方便,虚拟机做实验建议启用,连接IDC的服务器还要选命令行,因为ssh连接机房的服务器,网卡还没启动,启动vnc后会连不上现在的guest0

  windows 64位 vnc下载链接为 http://pan.baidu.com/s/1GSxHW 

wKioL1O85YmRnJtRAAFFwV43J-A564.jpg

6,检测磁盘,现在为80G

wKioL1O85bHQyQrRAAJRfMP-vS4092.jpg

7,设置时区,把utc取消,这里选 Asia/Chongqing

wKiom1O85fizClOdAAEXLbwct8c485.jpg

8,格式化硬盘Use entire dirve, 格式化后4分钟就安装成功

wKiom1O85gTQbbfLAAH5ftlEcsY358.jpg

wKioL1PHcyrjRaHhAABbNO3JNYo743.jpg

9,安装后重启

wKioL1O85eCR5WSuAAF2ExHsmK8839.jpg

10,登录系统

wKioL1O85gXQQHKvAAGpyJqs5DQ063.jpg

11,查看磁盘分区,系统自动分区的结果

wKioL1O85g6ToGAJAAESAigHPT4397.jpg

七、配置内网和外网

设置两块网卡,一块为外网,一块为内网(如果本来就是两个网口,两根网线,已经设置了两个网卡,下面就不用自己设置了,直接编辑网卡配置文件即可)

cp/etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1

编辑eth1网卡

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cat  /etc/sysconfig/network-scripts/ifcfg-eth0
  
DEVICE= "eth0"
BOOTPROTO= "static"
BROADCAST= "****"
GATEWAY= "****"
IPADDR= "****"
IPV6INIT= "yes"
IPV6_AUTOCONF= "yes"
NETMASK= "255.255.255.240"
NM_CONTROLLED= "yes"
ONBOOT= "yes"
TYPE= "Ethernet"
NAME= "System eth0"
HWADDR=****
1
2
3
4
5
6
7
8
9
10
11
12
cat  /etc/sysconfig/network-scripts/ifcfg-eth1
  
DEVICE= "eth1"
BOOTPROTO= "static"
IPADDR= "192.168.*.*"
IPV6INIT= "yes"
IPV6_AUTOCONF= "yes"
NETMASK= "255.255.255.0"
NM_CONTROLLED= "yes"
ONBOOT= "yes"
TYPE= "Ethernet"
NAME= "System eth1"
1
rm  /etc/udev/rules .d /70-persistent-net .rules


配置后关机

shutdown -h now


把宿主机的httpd关闭

service httpd stop


virsh edit bbotte


复制eth0内容,把MAC,slot两个地方做修改,MAC地址只需修改不同即可,一般修改最后一位

1
2
3
4
5
6
<interface  type = 'bridge' >
       <mac address= '****' />
       <sourcebridge= 'br0' />
       <modeltype= 'virtio' />
       <address  type = 'pci' domain= '0x0000'  bus= '0x00'  slot= '0x06'  function = '0x0' />
     < /interface >


启动kvm的guest

1
2
3
4
5
6
virsh start bbotte     #启动guest0
virsh console bbotte   #连接gues0
virsh destroy bbotte   #暂停guest bbotte
virsh undefine bbotte  #删除guest bbotte
virsh list             #查看正在运行的guest
virsh edit bbotte      #编辑guest bbotte的配置文件,可以调整cpu数量,内存大小,网卡

进入guest后,设置一下网络

1
2
vim  /etc/resolv
nameserver 114.114.114.114


此时,可以ping通外网和内网

shutdown -h now


怎样退出guest

exit  #退出登陆

会弹出一个仍然让你登陆的页面,同时按 Ctrl+ ] 即可

八、克隆一个guest虚拟机

原版克隆一个用于备份

virt-clone --connect qemu:///system --original=bbotte --name=bbotte2 --file=/var/kvm/bbotte2.img


virt-clone --connect qemu:///system --original=bbotte --name=bbotte2 --file=/var/kvm/bbotte2.qcow2 (如果在克隆前已经创建了虚拟磁盘,会有一个提示,后面需加参数覆盖)


再启动guest0

1
virsh start bbotte

到此,KVM guest0安装完毕


附:KVM的快照

因为创建的.img文件比较稳定,不容易出错,所以上面是.img的格式。不过需要做快照的话还得qcow2,下面是qcow2的guest创建命令

1
2
qemu-img create -f qcow2  -o size=100G,preallocation=metadata  /var/kvm/bbotte .qcow2
qemu-img info -f qcow2  /var/kvm/bbotte .qcow2

 

virt-install -v -n bbotte -r 2048 --vcpus=4 --location=/root/centos --nographics --virt-type=kvm --disk  path=/var/kvm/bbotte.qcow2,device=disk,format=qcow2,bus=virtio,cache=writeback,size=100 -w bridge:br0 --extra-args='console=tty0 console=ttyS0,115200n8' --connect qemu:///system


两块网卡为下:

virt-install -v -n bbotte -r 4096 --vcpus=4 --location=/root/centos --nographics --virt-type=kvm --disk  path=/var/kvm/bbotte.qcow2,device=disk,format=qcow2,bus=virtio,cache=writeback,size=100 -w bridge:br0 -w bridge:br1 --extra-args='console=tty0 console=ttyS0,115200n8' --connect qemu:///system


kvm名称:bbotte

内存:2G

cpu:4颗

磁盘文件名称:bbotte.qcow2

虚拟磁盘路径:/var/kvm/bbotte.qcow2

磁盘大小:100G


安装完毕,查看安装的guest磁盘文件信息

1
2
3
4
5
6
# qemu-img info /var/kvm/test.qcow2 
image:  /var/kvm/test .qcow2
file  format : qcow2                        #磁盘格式
virtual size: 150G (161061273600 bytes)   #guest系统磁盘看到的是150G
disk size: 16G                            #实际占用磁盘空间为16G
cluster_size: 65536


guest在启动的时候就可以做快照,不过要注意的是快照的时候是暂时的休克,ping不通外网的

1
2
3
4
5
6
# virsh list
  Id    Name                           State
----------------------------------------------------
  30     test                           running
# virsh snapshot-create test
Domain snapshot 1414228727 created


此时快照已经生成,

1
2
3
4
5
6
7
8
9
# qemu-img info /var/kvm/test.qcow2 
image:  /var/kvm/test .qcow2
file  format : qcow2                        #磁盘格式
virtual size: 150G (161061273600 bytes)   #guest系统磁盘看到的是150G
disk size: 16G                            #实际占用磁盘空间为16G
cluster_size: 65536
Snapshot list:
ID        TAG                 VM SIZE                DATE       VM CLOCK
1         1414228727             786M 2014-10-25 17:18:47  677:36:07.930


或者用这个命令查看快照

qemu-img snapshot -l /var/kvm/test.qcow2

快照的配置文件默认在 /var/lib/libvirt/qemu/snapshot/test/1414228727.xml

如果需要恢复快照,那么把guest停止,再恢复

virsh snapshot-revert test 1414228727(快照的TAG)

完事需要把时间同步为准确的时间

ntpdate 0.asia.pool.ntp.org ;hwclock -w










本文转自 bbotte 51CTO博客,原文链接:http://blog.51cto.com/bbotte/1436289,如需转载请自行联系原作者
目录
相关文章
|
4月前
|
存储 Ubuntu Linux
VMware-安装CentOS系统教程及安装包
虚拟机相当于是一个独立于你电脑的环境,在这个环境上面,你可以安装Linux、Windows、Ubuntu等各个类型各个版本的系统,在这个系统里面你不用担心有病读等,不用担心文件误删导致系统崩溃。 虚拟机也和正常的电脑系统是一样的,也可以开关机,不用的时候,你关机就可以了,也不会占用你的系统资源,使用起来还是比较方便 这里也有已经做好的CentOS 7系统,下载下来解压后直接用VMware打开就可以使用
823 69
|
7月前
|
应用服务中间件 Linux 网络安全
Centos 8.0中Nginx配置文件和https正书添加配置
这是一份Nginx配置文件,包含HTTP与HTTPS服务设置。主要功能如下:1) 将HTTP(80端口)请求重定向至HTTPS(443端口),增强安全性;2) 配置SSL证书,支持TLSv1.1至TLSv1.3协议;3) 使用uWSGI与后端应用通信(如Django);4) 静态文件托管路径设为`/root/code/static/`;5) 定制错误页面(404、50x)。适用于Web应用部署场景。
748 87
|
3月前
|
安全 关系型数据库 MySQL
CentOS 7 yum 安装 MySQL教程
在CentOS 7上安装MySQL 8,其实流程很清晰。首先通过官方Yum仓库来安装服务,然后启动并设为开机自启。最重要的环节是首次安全设置:需要先从日志里找到临时密码来登录,再修改成你自己的密码,并为远程连接创建用户和授权。最后,也别忘了在服务器防火墙上放行3306端口,这样远程才能连上。
644 16
|
5月前
|
存储 Linux Apache
在CentOS上配置SVN至Web目录的自动同步
通过上述配置,每次当SVN仓库中提交新的更改时,`post-commit`钩子将被触发,SVN仓库的内容会自动同步到指定的Web目录,从而实现代码的连续部署。
191 16
|
5月前
|
NoSQL 安全 Linux
设置Redis在CentOS7上的自启动配置
这些步骤总结了在CentOS 7系统上设置Redis服务自启动的过程。这些命令提供了一个直接且明了的方式,确保Redis作为关键组件在系统启动时能自动运行,保障了依赖于Redis服务的应用的稳定性和可用性。
492 9
|
7月前
|
Linux 应用服务中间件 nginx
在CentOS上部署Minikube教程
至此,您已成功在CentOS上部署并使用Minikube。您可以自由探索Kubernetes的世界,熟练配置和管理Kubernetes集群。
661 20
|
7月前
|
Linux
Centos6配置阿里云yum源报错
在CentOS 6配置阿里云Yum源时,可能出现EPEL仓库访问报错(404 Not Found)。解决方法:编辑`/etc/yum.repos.d/epel.repo`文件,将`enabled`和`gpgcheck`参数设为0 ``` 此设置可解决仓库无法访问的问题。
1678 29
|
7月前
|
Ubuntu 安全 Linux
CentOS与Ubuntu中防火墙配置命令集汇
有了这些,你就能遨游在 CentOS 和 Ubuntu 的海洋中,频繁地改变你的防火墙设置,快速地应对各种安全威胁,同时也能保证你的系统可以正常工作。出发吧,勇敢的编程者,随着这些命令集的涌动,扬帆起航,走向安全的网络世界!
231 5
|
8月前
|
关系型数据库 MySQL Linux
CentOS 7系统下详细安装MySQL 5.7的步骤:包括密码配置、字符集配置、远程连接配置
以上就是在CentOS 7系统下安装MySQL 5.7的详细步骤。希望这个指南能帮助你顺利完成安装。
1980 26