一直别人都说linux虚拟用kvm,今天有时间安装与测试下。
参考文档:http://wiki.centos.org/zh/HowTos/KVM
CentOS 6 的基本发行版本已提供原生的 KVM 虚拟化支持和工具。你可在这里找到更多有关在 CentOS 6 上采用 KVM 的说明。请参阅以下中继组件的内容:
# yum grouplist | grep -i virt
1. 设置主机
安装你可能需用的组件。
yum -y install @virt* dejavu-lgc-* xorg-x11-xauth tigervnc \ libguestfs-tools policycoreutils-python bridge-utils
假若你利用 /var/lib/libvirt 以外的目录存放 kvm 文件,请设置 selinux 脉络。在此样例中,我采用 /vm 存放碟盘映像档。
semanage fcontext -a -t virt_image_t "/vm(/.*)?"; restorecon -R /vm
容许在界面之间转送封包。 Allow packet forwarding between interfaces.
sed -i 's/^\(net.ipv4.ip_forward =\).*/\1 1/' /etc/sysctl.conf; sysctl -p
设置 libvirtd 服务自动引导,然后重新开机。
chkconfig libvirtd on; shutdown -r now
你可选择设置桥接,让客端与主机在同一个实体网络上拥有网络卡。 在这个样例中,eth0 是支持桥接的设备,而 br0 将会是新的设备。
chkconfig network on
service network restart
yum -y erase NetworkManager
cp -p /etc/sysconfig/network-scripts/ifcfg-{eth0,br0}
sed -i -e'/HWADDR/d' -e'/UUID/d' -e's/eth0/br0/' -e's/Ethernet/Bridge/' \
/etc/sysconfig/network-scripts/ifcfg-br0
echo DELAY=0 >> /etc/sysconfig/network-scripts/ifcfg-br0
echo 'BOOTPROTO="none"' >> /etc/sysconfig/network-scripts/ifcfg-eth0
echo BRIDGE=br0 >> /etc/sysconfig/network-scripts/ifcfg-eth0
service network restart
brctl show
主机现在已准备好创建 kvm 客端。
2. 设置客端
由于设置客端的选项众多,较简单的方法是将所需的数据收集在变量中,继而通过一个指令创建客端。以下列出了数个选项,它们多数可按需要调整。
首先查看可选用的操作系统。
virt-install --os-variant=list | more
选择一个操作系统:
OS="--os-variant=freebsd8" OS="--os-variant=win7" OS="--os-variant=win7 --disk path=/var/lib/libvirt/iso/virtio-win.iso,device=cdrom" OS="--os-variant=win2k8" OS="--os-variant=win2k8 --disk path=/var/lib/libvirt/iso/virtio-win.iso,device=cdrom" OS="--os-variant=rhel6"
选择一个网络选项,按需要更改 MAC 位置:
Net="--network bridge=br0" Net="--network model=virtio,bridge=br0" Net="--network model=virtio,mac=52:54:00:00:00:00" Net="--network model=virtio,bridge=br0,mac=52:54:00:00:00:00"
选择一个碟盘选项,更改文件名称及尺寸至所需值:
Disk="--disk /vm/Name.img,size=8" Disk="--disk /var/lib/libvirt/images/Name.img,size=8" Disk="--disk /var/lib/libvirt/images/Name.img,sparse=false,size=8" Disk="--disk /var/lib/libvirt/images/Name.qcow2,sparse=false,bus=virtio,size=8" Disk="--disk vol=pool/volume" Disk="--livecd --nodisks" Disk="--disk /dev/mapper/vg_..."
选择一个来源地(live cd iso、pxe 或 url):
Src="--cdrom=/var/lib/libvirt/iso/iso/..." Src="--pxe" Src="-l http://alt.fedoraproject.org/pub/fedora/linux/releases/20/Fedora/x86_64/os/" Src="-l http://download.fedoraproject.org/pub/fedora/linux/releases/20/Fedora/x86_64/os/" Src="-l http://ftp.us.debian.org/debian/dists/stable/main/installer-amd64/ Src="-l http://ftp.ubuntu.com/ubuntu/dists/trusty/main/installer-amd64/" Src="-l http://download.opensuse.org/distribution/openSUSE-stable/repo/oss/" Src="--location=http://mirror.centos.org/centos/6/os/x86_64"
按需要为 kickstart 档加入 URL:
KS="" KS="-x ks=http://ks.example.com/kickstart/c6-64.ks"
按需选择一个图像界面:
Gr="" Gr="--graphics none" Gr="--graphics vnc" Gr="--graphics vnc,password=foo" Gr="--graphics spice"
选择处理器的数量:
Cpu="--vcpus=1" Cpu="--vcpus=2" Cpu="--vcpus=4"
选择内存尺寸:
Ram="--ram=768" Ram="--ram=1024" Ram="--ram=2048"
为客端命名:
Name="myguest"
创建客端:
virt-install $OS $Net $KS $Disk $Src $Gr $Cpu $Ram --name=$Name
请留意此程序可能需要很长时间才能完成,尤其是当你选用慢硬盘上的巨大、非稀疏文件。如果你选用交互式的安装,你必须连接到终端機才能完成安装。
以 myhost 作为样例主机,连接到终端機:
virt-viewer --connect qemu_ssh://myhost/$Name
要是你较喜欢图像应用程序:
virt-manager &
最后,你可以设置这个客端在主机开机时自动引导:
virsh autostart $Name