標籤:kvm
一:kvm安裝
兩台伺服器
192.168.115.18192.168.115.19
0.修改物理伺服器時區
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtimeyum install ntpdate -yecho "*/5 * * * * root ntpdate cn.pool.ntp.org" >> /etc/crontab && cat /etc/crontabservice crond stop && service crond start
1.修改主機名稱
echo "192.168.1.154 kvm-node154.com kvm-node154" >>/etc/hostsecho "192.168.1.155 kvm-node155.com kvm-node155" >>/etc/hostscat /etc/hosts
2.修改核心模式(相容核心)
sed -i "s/default=0/default=1/g" /boot/grub/grub.conf && cat /boot/grub/grub.conf
3.關閉SELINUX
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config && cat /etc/selinux/config
4.關閉防火牆和NetworkManager
chkconfig iptables offchkconfig ip6tables offchkconfig NetworkManager off
5.重啟
yum update -yreboot
6.重啟完畢後,檢測是否支援虛擬化
cat /proc/cpuinfo | grep -E "vmx|svm" --color=always
7.安裝kvm虛擬化所需要的模組和工具
yum install kvm python-virtinst libvirt tunctl bridge-utils virt-manager qemu-kvm-tools virt-viewer virt-v2v libguestfs-tools -y
8.配置libvirt用戶端服務常用的遠端連線別名
vi /etc/libvirt/libvirt.confuri_aliases = [ "kvm154=qemu+ssh://[email protected]/system", "kvm155=qemu+ssh://[email protected]/system",]
9.啟動libvirtd守護進程進行用戶端登入測試
service libvirtd startvirsh -c kvm154virsh -c kvm155
10.配置libvirtd服務端,關閉TLS安裝串連,開啟TCP串連,設定TCP監聽連接埠,TCP串連不適用認證授權的方式,設定socket的儲存位置.
cp /etc/libvirt/libvirtd.conf /etc/libvirt/libvirtd.conf_$(date +%F)
cat >> /etc/libvirt/libvirtd.conf << EOFlisten_tls = 0listen_tcp = 1tcp_port = "16666"unix_sock_dir = "/var/run/libvirt"auth_tcp = "none"EOF
service libvirtd stop && service libvirtd start
11.使libvirtd關閉TLS和開啟TCP功能生效,兩種方式
方法一:sed -i ‘s/#LIBVIRTD_ARGS="--listen"/LIBVIRTD_ARGS="--listen"/g‘ /etc/sysconfig/libvirtd /etc/init.d/libvirtd restart netstat -tulnp | grep 16666
方法二: libvirtd --listen -d 或者 libvirtd -l -d
12.配置vnc監聽地址,預設為127.0.0.1,更改為0.0.0.0,這樣做的目的是在建立vm虛擬機器時.就不需要指定--vnclisten 0.0.0.0
sed -i ‘s/#vnc_listen = "0.0.0.0"/vnc_listen = "0.0.0.0"/g‘ /etc/libvirt/qemu.conf cat /etc/libvirt/qemu.conf | more
13.查看kvm模組是否正常載入
lsmod | grep kvm
14.查看版本
virsh -version/usr/libexec/qemu-kvm -version
15.關閉NetworkManager網路管理伺服器
chkconfig NetworkManager offservice NetworkManager stopservice NetworkManager status
16.配置br0網卡
cd /etc/sysconfig/network-scripts/cp ifcfg-eth0 ifcfg-br0
eth0配置如下:
[[email protected] network-scripts]# cat ifcfg-eth0 DEVICE=eth0HWADDR=00:0C:29:57:87:7FTYPE=EthernetBRIDGE=br0UUID=14fbc589-a209-4b37-acd5-60ef51214cdbONBOOT=yesNM_CONTROLLED=yesBOOTPROTO=none
br0配置如下:
[[email protected] network-scripts]# cat ifcfg-br0 DEVICE=br0HWADDR=00:0C:29:57:87:7FTYPE=BridgeUUID=14fbc589-a209-4b37-acd5-60ef51214cdbONBOOT=yesNM_CONTROLLED=yesBOOTPROTO=noneIPADDR=192.168.1.154NETMASK=255.255.255.0GATEWAY=192.168.1.1
17.查看橋接器
brctl show
二:kvm建立虛擬機器
1.使用virt-install工具建立虛擬機器,它會調用qemu-kvm
具體參數:
--name 虛擬機器名稱--ram 分配記憶體,取值值不帶單位,直接為數值,預設單位MB--vcpus 分配的cpu個數,不能查過物理伺服器總的核心數--disk 虛擬機器的磁碟位置,後面接 path=dirpath:磁碟鏡像儲存的位置.device:裝置類型 ,有cdrom ,disk,floppybus:磁碟類型:ide,scsi,usb,virtio,xenperms:存取權限:rw,ro,sh(共用可讀寫),預設rwsize:磁碟大小,單位GBformat:磁碟格式.raw,qcow2,vmdk等sparse:磁碟使用稀疏格式,即不立即分配指定大小的空間--network 使用橋接模式bridge:串連到指定橋接網卡model:網卡裝置型號.e1000,rtl8139,virtiomac:固定mac地址.無論何種方式.對於kvm來說,前三段必須是54:52:00--cdrom 指定iso鏡像的位置--vnc 指定啟用vnc服務--vncport vnc服務的開放連接埠,供遠端連線使用--vnclisten 預設為127.0.0.1,只運行自身訪問自身,一般改為0.0.0.0--os-type Linux或者Windows或者unix--os-variant 系統型號.包括 win7|vista|winxp64|winxp|win2k8|win2k3|freebsd8|generic|debiansqueeze|debianlenny|fedora16|fedora15|fedora14|rhel6|rhel5.4|rhel4|sles11|sles10|--accelerate 加速
2.上傳iso鏡像,到指定目錄,建立鏡像儲存位置
mkdir /isomkdir /vm
3.建立qcow2的格式的磁碟,必須在建立虛擬機器之前先建立磁碟鏡像
qemu-img create -f qcow2 /vm/api1-qcow2.img 8G virt-install --name api1 --ram 512 --vcpus 1 --disk /vm/api1-qcow2.img,size=8,device=disk,format=qcow2,bus=virtio,perms=rw --network bridge=br0,model=virtio --cdrom /iso/CentOS-6.6-x86_64-minimal.iso --vnc --vncport 5911 --vnclisten=0.0.0.0 --os-type=linux --os-variant=rhel6 --accelerate
4.Tigervnc串連
IP:5911 ,安裝過程,完成安裝.重啟guestOS,重啟完成之後,必須需要手動用virsh start Name命令手動去開啟guestOS客戶機.
5.建立raw(虛擬機器預設磁碟格式)的磁碟.可以直接建立,不需要先建立磁碟鏡像.
virt-install --name api2 --ram512 --vcpus 1 --disk /vm/api2-raw.img,size=8,device=disk,format=raw,bus=virtio,perms=rw --network bridge=br0,model=virtio --cdrom /iso/CentOS-6.6-x86_64-minimal.iso --vnc --vncport=5912 --vnclisten=0.0.0.0 --os-tyep=linux --os-variant=rhel6 --acclerate
6.Tigervnc串連
IP:5912 ,安裝過程,完成安裝.重啟guestOS.必須需要手動用virsh start Name命令手動去開啟guestOS客戶機.
7.虛擬機器安裝之後,不能使用virsh shutdown Name,需要在虛擬機器中安裝acpid服務
tigervnc登入到虛擬機器,配置eth0的ip地址,確保可以訪問外網,然後
yum install -y acpid chkconfig acpid on chkconfig --list | grep acpidreboot
8.虛擬機器系統安裝之後,配置虛擬機器控制台登入配置,可以通過virsh console Name登入
(1)
echo "ttyS0" >> /etc/securetty && cat /etc/securetty
(2)vi /etc/grub.conf
rhgb quiet後面添加:console=ttyS0
(3)
echo "SO:12345:respawn:/sbin/agetty ttyS0 115200" >> /etc/inittab cat /etc/inittab
(4)
virsh shutdown Name sleep 10 && virsh start Name
(5)
virsh console Name 注意虛擬機器啟動後,隔10s中才有正常啟動資訊顯示.不必緊張.
9.配置VM時間
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
vi /etc/libvirt/qemu/api2.xml<clock offset=‘utc‘> ===> <clock offset=‘localtime‘>
yum install ntpdate -y ntpdate cn.pool.ntp.org echo "*/5 * * * * root ntpdate cn.pool.ntp.org" >> /etc/crontabservice crond restart
三:kvm虛擬機器本機複製
必須需要說明的是.源客戶機的狀態必須處於關機或者暫停狀態.本機複製使用virt-clone命令進行.會自動產生鏡像檔案和XML設定檔.
1.本機複製案例:
物理機IP地址:192.168.1.154虛擬機器名稱: api1虛擬機器鏡像: /vm/api1-qcow2.img
(1)停止api1virsh shutdown api1 && sleep 30 && exit 0(2)開始複製:virt-clone -o api1 -n api2 -f /vm/api2-qcow2.img(3)啟動api2,修改主機名稱和IP地址virsh console api2vi /etc/sysconfig/networkHOSTNAME=vm-api2GATEWAY=192.168.1.1
(4)網卡報錯:
Bringing up interface eth0: Device eth0 does not seem to be present, delaying initialization.[FAILED]
(5)解決,編輯70-persistent-net.rules
cd /etc/udev/rules.d/ && vi 70-persisten-net.rules
將eth0的網卡的資訊注釋,將eth1的網卡name改為eth0.先記錄下eth1的MAC資訊.然後將eth1的mac地址粘貼到ifcfg-eth0中的mac地址.
:
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M01/79/85/wKiom1aTcEOBMa8yAARoJ5MpkLo224.jpg" style="float:none;" title="1111111111111111111.jpg" alt="wKiom1aTcEOBMa8yAARoJ5MpkLo224.jpg" />
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M02/79/83/wKioL1aTcHOBV_mxAAI84HeDbik828.jpg" style="float:none;" title="22222222222.jpg" alt="wKioL1aTcHOBV_mxAAI84HeDbik828.jpg" />
(5)編輯api2的XML設定檔
virsh edit api2.xml更改VNC的連接埠port="5912"
四:kvm虛擬機器磁碟快照
注意:
只有磁碟格式為qcow2的磁碟才支援磁碟快照和磁碟動態擴充.
1.基本命令
snapshot-list Domainsnapshot-create-as Domain shotNamesnapshot-revert Domain shotNamesnapshot-delete Domain shotName
2.注意
建立快照必須保證虛擬機器是開啟的狀態.恢複快照必須保證虛擬機器是關機狀態.
3.例子
Domain Name: api2shutdown api2snapshot-create-as api2 api2_httpdsnapshot-list api2snapshot-revert api2 api2_httpdsnapshot_delete api2 api2_httpd
本文出自 “不求最好,只求更好” 部落格,請務必保留此出處http://yujianglei.blog.51cto.com/7215578/1733863
KVM總結文檔一(CentOS-6.5)