系统为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