CentOS命令行安装配置KVM详细教程
时间:2016-03-24 22:11 来源:linux.it.net.cn 作者:IT
系统为centos 6.4 64位 最小化安装 服务器为dell R720,所以网卡为em0,在vmware作为练习安装学习,同样可以,命令行不是为了显的牛B,而是不用考虑桌面兼容性和其他原因的影响
一、查看是否支持虚拟化
vmware开启方式虚拟化方式如下图,虚拟机下面可以用VNC连接安装系统,如果服务器在idc机房,因为和公司网络不在一个网段,所以vnc是连不上去的,另外kvm和桌面系统兼容性不清楚,有发生过卡死的情况,所以还是命令行,下面是一步一步的 操作过程,按着步骤肯定可以!
确定服务器是否支持虚拟化,如果没有查到,在bios里面开启
关闭selinux SELINUX=disabled
vmx属于inter处理器,svm属于amd处理器
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包
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
安装完成后重启系统
三、检查安装后是否加载模块
lsmod|grep kvm
kvm_intel 53484 12
kvm 316506 1 kvm_intel
查看kvm正常运行
/etc/init.d/libvirtd start
chkconfig libvirtd on
virsh -c qemu:///system list
Id Name State
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都链接上面
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=****
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"
service network restart
service acpid start #电源管理
#查看网络连接
brctl show
bridge name bridge id STP enabled interfaces
br0 8000.74867af0c7a0 no em1
virbr0 8000.525400cbfade yes virbr0-nic
检查ip转发是否开启
cat /etc/sysctl.conf |grep ip_forward
net.ipv4.ip_forward = 1
如果没有开启,则
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
/sbin/sysctl -p
两块网卡配置道理一样,
# 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
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
mount -o loop -t iso9660 /data/CentOS-6.5-x86_64-minimal.iso /mnt/cdrom
cp -r /mnt/cdrom /root/centos
修改这个文件,需要强制保存 wq!
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行
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要开启,
六、安装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,选择语言
2,选择安装方式,这里是自己配置的http,所以选URL
3,为主机配置ip地址
4,输入安装的url,这里是http://ip,Tab到ok即可
5,在这里如果启用VNC的话安装会很方便,虚拟机做实验建议启用,连接IDC的服务器还要选命令行,因为ssh连接机房的服务器,网卡还没启动,启动vnc后会连不上现在的guest0
windows 64位 vnc下载链接为 http://pan.baidu.com/s/1GSxHW
6,检测磁盘,现在为80G
7,设置时区,把utc取消,这里选 Asia/Chongqing
8,格式化硬盘Use entire dirve, 格式化后4分钟就安装成功
9,安装后重启
10,登录系统
11,查看磁盘分区,系统自动分区的结果
七、配置内网和外网
设置两块网卡,一块为外网,一块为内网(如果本来就是两个网口,两根网线,已经设置了两个网卡,下面就不用自己设置了,直接编辑网卡配置文件即可)
cp/etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1
编辑eth1网卡
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=****
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"
rm /etc/udev/rules.d/70-persistent-net.rules
配置后关机
shutdown -h now
把宿主机的httpd关闭
service httpd stop
virsh edit bbotte
复制eth0内容,把MAC,slot两个地方做修改,MAC地址只需修改不同即可,一般修改最后一位
<interface type='bridge'>
<mac address='****'/>
<sourcebridge='br0'/>
<modeltype='virtio'/>
<address type='pci'domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</interface>
启动kvm的guest
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后,设置一下网络
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
virsh start bbotte
到此,KVM guest0安装完毕
附:KVM的快照
因为创建的.img文件比较稳定,不容易出错,所以上面是.img的格式。不过需要做快照的话还得qcow2,下面是qcow2的guest创建命令
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磁盘文件信息
# 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不通外网的
# virsh list
Id Name State
----------------------------------------------------
30 test running
# virsh snapshot-create test
Domain snapshot 1414228727 created
此时快照已经生成,
# 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
(责任编辑:IT)
系统为centos 6.4 64位 最小化安装 服务器为dell R720,所以网卡为em0,在vmware作为练习安装学习,同样可以,命令行不是为了显的牛B,而是不用考虑桌面兼容性和其他原因的影响 一、查看是否支持虚拟化 vmware开启方式虚拟化方式如下图,虚拟机下面可以用VNC连接安装系统,如果服务器在idc机房,因为和公司网络不在一个网段,所以vnc是连不上去的,另外kvm和桌面系统兼容性不清楚,有发生过卡死的情况,所以还是命令行,下面是一步一步的 操作过程,按着步骤肯定可以! 确定服务器是否支持虚拟化,如果没有查到,在bios里面开启 关闭selinux SELINUX=disabled vmx属于inter处理器,svm属于amd处理器 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包
yum groupinstall "Development Tools" virtualization //提供虚拟机的环境,主要包含qumu-kvm virtualization-client//管理和安装虚拟机实例的客户端,主要有python-virtinst,virt-manager,virt-viewer virtualization-platform//提供访问和控制虚拟客户端的接口,主要有libvirt,libvirt-client 安装完成后重启系统 三、检查安装后是否加载模块 lsmod|grep kvm kvm_intel 53484 12 kvm 316506 1 kvm_intel 查看kvm正常运行
/etc/init.d/libvirtd start
virsh -c qemu:///system list
service libvirtd status
chkconfig --list libvirtd 四、配置网卡为桥接 这里只是配置一个网卡,配置多个网卡方法一样,现在em1可以理解为交换机,其他guest都链接上面 yum install bridge-utils.x86_64 acpid -y
brctl show cp /etc/sysconfig/network-scripts/ifcfg-em1 /etc/sysconfig/network-scripts/ifcfg-br0 cat /etc/sysconfig/network-scripts/ifcfg-em1
DEVICE=em1 cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
service network restart #查看网络连接
brctl show 检查ip转发是否开启
cat /etc/sysctl.conf |grep ip_forward
如果没有开启,则 /sbin/sysctl -p 两块网卡配置道理一样,
# service network restart #重启时候要等半分钟 五、配置自己的安装镜像(此步骤可略过) 为什么要自己配置源呢,因为至少现在centos6.5以下版本的源在sohu,163都被删了,问题是能找到自己系统版本的源 自己搭系统的iso服务器(http) 下载CentOS-6.5-x86_64-minimal.iso
mkdir /data
mount -o loop -t iso9660 /data/CentOS-6.5-x86_64-minimal.iso /mnt/cdrom 修改这个文件,需要强制保存 wq!
vim /root/centos/.treeinfo 安装配置httpd yum install httpd #只需要修改httpd.conf的292、318两行,welcome.conf 第8行 vim /etc/httpd/conf/httpd.conf
#DocumentRoot "/var/www/html" vim /etc/httpd/conf.d/welcome.conf
<LocationMatch "^/+$"> service httpd start 开启iptables80端口,在浏览器输入ip即可查看,下面用URL安装,需要打开iptables的80端口,并且ip_forward要开启, 六、安装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,选择语言 2,选择安装方式,这里是自己配置的http,所以选URL 3,为主机配置ip地址 4,输入安装的url,这里是http://ip,Tab到ok即可 5,在这里如果启用VNC的话安装会很方便,虚拟机做实验建议启用,连接IDC的服务器还要选命令行,因为ssh连接机房的服务器,网卡还没启动,启动vnc后会连不上现在的guest0 windows 64位 vnc下载链接为 http://pan.baidu.com/s/1GSxHW 6,检测磁盘,现在为80G 7,设置时区,把utc取消,这里选 Asia/Chongqing 8,格式化硬盘Use entire dirve, 格式化后4分钟就安装成功 9,安装后重启 10,登录系统 11,查看磁盘分区,系统自动分区的结果 七、配置内网和外网 设置两块网卡,一块为外网,一块为内网(如果本来就是两个网口,两根网线,已经设置了两个网卡,下面就不用自己设置了,直接编辑网卡配置文件即可) cp/etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1 编辑eth1网卡 cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0" cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1" rm /etc/udev/rules.d/70-persistent-net.rules 配置后关机 shutdown -h now 把宿主机的httpd关闭 service httpd stop virsh edit bbotte 复制eth0内容,把MAC,slot两个地方做修改,MAC地址只需修改不同即可,一般修改最后一位
<interface type='bridge'> 启动kvm的guest
virsh start bbotte #启动guest0 进入guest后,设置一下网络
vim /etc/resolv 此时,可以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 virsh start bbotte 到此,KVM guest0安装完毕 附:KVM的快照 因为创建的.img文件比较稳定,不容易出错,所以上面是.img的格式。不过需要做快照的话还得qcow2,下面是qcow2的guest创建命令
qemu-img create -f qcow2 -o size=100G,preallocation=metadata /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磁盘文件信息
# qemu-img info /var/kvm/test.qcow2 guest在启动的时候就可以做快照,不过要注意的是快照的时候是暂时的休克,ping不通外网的
# virsh list 此时快照已经生成,
# qemu-img info /var/kvm/test.qcow2 或者用这个命令查看快照 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 (责任编辑:IT) |