kvm搭建

一、安装
yum -y groupinstall "Virtualization" "Virtualization Client" "Virtualization Platform"
yum -y install "libguestfs-tools"
二、重启机器
init 6 / reboot
三、检查KVM模块加载
lsmod | grep kvm
-------------------------------------------------
kvm_amd 37434 4
kvm 292815 1 kvm_amd html

四、修改vnc监听端口,放开使vnc监听全部网段
vim /etc/libvirt/qemu.conf
vnc_listen = "0.0.0.0"
vnc_password = "AOcOjHV573WS"
user = "root"
group = "root"linux

五、创建qcow2格式磁盘文件
cd /datadir/kvm
qemu-img create -f qcow2 vm-web-1.qcow2 40G
qemu-img info vm-web-1.qcow2web

六、建立24G内存、6核CPU、单网卡,磁盘和网络驱动使用virtio的linux虚拟机,双网卡(先搭建虚拟网桥br一、br4)vim

virt-install --name vm-web-1 --boot network,cdrom,menu=on --ram 24576 --vcpus=6 --os-variant=rhel6 --accelerate --cdrom=/home/src/CentOS-6.5-x86_64-bin-DVD1.iso --disk path=/datadir/kvm/vm-web-1.qcow2,size=40,format=qcow2,bus=virtio --bridge=br1,model=virtio --mac=54:52:00:10:79:e0 --bridge=br4,model=virtio --mac=54:52:00:11:79:e0 --vnc --vncport=5991 --vnclisten=0.0.0.0网络

初始密码:moshwang123rest

--name vm-web-1
.....
--name vm-web-12orm

同一主机,两个网卡,两个mac
--mac=54:52:00:10:79:e0
.....
--mac=54:52:00:32:79:e0xml

swap 10Ghtm

七、扩充新磁盘
qemu-img create -f qcow2 data-web-1.qcow2 40G

vim /etc/libvirt/qemu/vm-web-1.xml
++++++++++++++++++++++++++++++++++++++++
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source file='/datadir/data/sqv010_200.qcow2'/>
<target dev='vdb' bus='virtio'/>
<address type='pci' controller='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</disk>
++++++++++++++++++++++++++++++++++++++++
fdisk -l
fdisk /dev/vdb
mkfs.ext4 /dev/vdb1ip

blkid /dev/vdb1
/dev/vdb1: UUID="98e7a61e-ce8a-4475-82f8-bd0e8ca3649a" TYPE="ext4"
vim /etc/fstab
UUID=98e7a61e-ce8a-4475-82f8-bd0e8ca3649a /datadir ext4 defaults 0 0

或者
/dev/vdb1 /datadir ext4 defaults 0 0

后面两列数值意思: http://www.kuqin.com/linux/20120815/328913.html
http://www.2cto.com/kf/201306/220887.html 除了根分区用 1 1,其余数据分区等建议用 0 0

八、主机克隆
克隆一个虚拟机,克隆后同时起不来两个,修改相关配置(可能与网卡配置有关。也重启了主机。)
暂停客户端 virsh suspend sqv010
恢复客户端 virsh resume sqv010
virt-clone -o sqv010 -n sqv011 -f /datadir/kvm/sqv011.qcow2 --connect=qemu:///system
-o 原始客体的名称;必须为关闭或者暂停状态。
-n 新客户端的名称
-f 做为新客户端磁盘映像的新文件
--connect=URI Connect to hypervisor with libvirt URI

经过 vnc 链接远程虚拟主机修改IP与MAC地址
查看对应网卡的mac cat /etc/udev/rules.d/70-persistent-net.rules

或者使用 virt-edit命令,须要安装 yum install libguestfs-tools
virt-edit -d sqv011 /etc/sysconfig/network-scripts/ifcfg-eth0
virt-edit -d sqv011 /etc/sysconfig/network-scripts/ifcfg-eth1
注意:
一、mac地址,须要 sqv011.xml文件中的保持一致
二、修改 sqv011.xml vnc端口,不与其余虚拟机冲突

复制虚拟机到其余主机
一、复制 sqv010.qcow2
二、复制 /etc/libvirt/qemu/sqv010.xml
三、修改 sqv010.xml里面的 sqv010.qcow2路径
四、virsh define ./sqv010.xml
五、virt-edit -d sqv010 /etc/sysconfig/network-scripts/ifcfg-eth0
六、virsh start sqv010

virt-edit -d sqv010 /etc/udev/rules.d/70-persistent-net.rules
virt-edit -d sqv010 /etc/sysconfig/network
virt-edit -d sqv010 /usr/local/etc/zabbix_agentd.conf
执行命令时 须要等待一下子

virsh managedsave-remove sqv011


------------------------------------------------------------------
virsh define sqv000.xml
virt-clone -o sqv000 -n sqv010 -f /datadir/kvm/sqv010.qcow2 --connect=qemu:///system
virt-edit -d sqv000 /etc/sysconfig/network-scripts/ifcfg-eth0
virt-edit -d sqv000 /etc/sysconfig/network-scripts/ifcfg-eth1
virt-edit -d sqv000 /etc/udev/rules.d/70-persistent-net.rules
virt-edit -d sqv000 /usr/local/etc/zabbix_agentd.conf
virt-edit -d sqv000 /etc/sysconfig/network

blkid /dev/vdb1
vim /etc/fstab

virsh undefine sqv000
#注意,sqv000.xml文件会删除


网卡设定:
设定完毕执行:service network restart
br1
em1
br4
em4
ifdown em1
ifdown br1
ifup em1
ifup br1

开机自动启动虚拟机:
[root@vfeelit qemu]# virsh autostart Winxp

 

virt-install --name test01 --boot network,cdrom,menu=on --ram 1024 --vcpus=2 --os-variant=rhel6 --accelerate --cdrom=/datadir/iso/CentOS-6.5-x86_64-minimal.iso --disk path=/datadir/kvm/test01.qcow2,size=30,format=qcow2,bus=virtio --bridge=br0,model=virtio --mac=54:52:00:10:79:e0 --vnc --vncport=5991 --vnclisten=0.0.0.0