国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > Web服務器 > 正文

詳解基于本地存儲的kvm虛擬機在線遷移

2024-09-01 13:49:37
字體:
來源:轉載
供稿:網友

kvm虛擬機遷移分為4種

(1)熱遷移基于共享存儲

(2)熱遷移基于本地存儲

(3)冷遷移基于共享存儲

(4)冷遷移基于本地存儲

這里介紹的是基于本地存儲的熱遷移

動態塊遷移版本要求

qemu版本要求  大于或等于0.12.1(centos6.7或以上都沒問題)

rpm -qa|grep qemuqemu-kvm-0.12.1.2-2.491.el6_8.1.x86_64qemu-kvm-tools-0.12.1.2-2.491.el6_8.1.x86_64

目標宿主機:192.168.1.24  機器名:CQ-KVM01

源宿主機:192.168.1.26   機器名:CQ-KVM02

遷移使用tcp認證方式

kvm虛擬機名稱,是一臺跑nginx的虛擬機:CQ-NGINX01

1、配置libvirtd服務 源宿主機和目標宿主機都要執行

vi /etc/libvirt/libvirtd.conflisten_tls = 0  listen_tcp = 1tcp_port = "16509"listen_addr = "0.0.0.0"auth_tcp = "none"mdns_adv = 0

解釋

  • listen_tls:關閉tls,默認是開啟的
  • listen_tcp :開啟tcp認證
  • tcp_port:tcp端口配置,默認端口是16509
  • auth_tcp:配置是否開啟口令認證,默認不開啟
  • mdns_adv:是否開啟mdns組播,默認關閉
sed -i 's/^#listen_tls = 0/listen_tls = 0/' /etc/libvirt/libvirtd.confsed -i 's/^#listen_tcp = 1/listen_tcp = 1/' /etc/libvirt/libvirtd.confsed -i 's/^#tcp_port = /"16509/"/tcp_port = /"16509/"/' /etc/libvirt/libvirtd.confsed -i 's/^#listen_addr = /"192.168.0.1/"/listen_addr = /"0.0.0.0/"/' /etc/libvirt/libvirtd.confsed -i 's/^#auth_tcp = /"sasl/"/auth_tcp = /"none/"/' /etc/libvirt/libvirtd.confsed -i 's/^#mdns_adv = 1/mdns_adv = 0/' /etc/libvirt/libvirtd.conf
cat libvirtd.conf |grep -iE "listen_tls"cat libvirtd.conf |grep -iE "listen_tcp"cat libvirtd.conf |grep -iE "tcp_port"cat libvirtd.conf |grep -iE "listen_addr"cat libvirtd.conf |grep -iE "auth_tcp"cat libvirtd.conf |grep -iE "mdns_adv"

2、配置libvirtd監聽方式,無論是tcp,ssh,tls認證方式都需要配置 , 源宿主機和目標宿主機都要執行

vi /etc/sysconfig/libvirtdLIBVIRTD_ARGS="--listen"

3、編輯/etc/libvirt/qemu.conf文件  源宿主機和目標宿主機都要執行

vi /etc/libvirt/qemu.confvnc_listen = "0.0.0.0"

解釋

  • vnc_listen:使虛擬機帶外VNC默認監聽.0.0.0.0

4、重啟libvirtd服務,使配置生效,  源宿主機和目標宿主機都要執行

/etc/init.d/libvirtd restart

5、檢查端口和進程,libvirtd是否監聽16509端口,  源宿主機和目標宿主機都要執行

netstat -lntp | grep libvirtd
tcp        0      0 0.0.0.0:16509               0.0.0.0:*                   LISTEN      48825/libvirtd   

修改iptables腳本,放行16509端口和49152端口

#ACCESS kvmiptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 5900:5909 -j ACCEPTiptables -A INPUT -p tcp --dport 16509 -j ACCEPTiptables -A INPUT -p tcp --dport 49152 -j ACCEPT

6、在源宿主機和目標宿主機加上IP和主機的解析

#24機器上echo "192.168.1.26 CQ-KVM02" >> /etc/hosts#26機器上echo "192.168.1.24 CQ-KVM01" >> /etc/hosts

7、在源宿主機連接目標宿主機的libvirtd并查看虛擬機信息

virsh -c qemu+tcp://root@192.168.1.26:16509/systemvirsh -c qemu+tcp://root@192.168.1.24:16509/system

8、在目標宿主機創建同樣大小的鏡像文件,路徑、名稱也要一樣

要加上preallocation=metadata,否則使用virt-install命令安裝完成后虛擬機磁盤鏡像會變為raw格式

qemu-img create -f qcow2 -o preallocation=metadata /data/kvmimg/CQ-NGINX01.qcow2 100G

9、遷移 ,192.168.1.26為目標宿主機的內網IP,tcp認證方式,遷移時間有點長需要開一個screen窗口,不需要cd 到鏡像文件所在目錄

screen -S migratekvmvirsh migrate --live --copy-storage-all --unsafe --persistent CQ-NGINX01 qemu+tcp://root@192.168.1.26:16509/system

10、在目標宿主機執行,會顯示paused狀態 即是suspended狀態

watch virsh list --all

11、在目標宿主機執行,顯示遷移進度

tailf /var/log/libvirt/qemu/CQ-NGINX01.log

12、在目標宿主機執行,鏡像文件目錄為/data/kvmimg/,顯示虛擬機鏡像的大小,會看到虛擬機鏡像會不斷增大表示數據已經在遷移過來

注意創建鏡像文件的時候要使用preallocation=metadata

cd /data/kvmimg/watch du -h *

13、虛擬機遷移完成后,源宿主機為關機狀態,目標宿主機變為running狀態

virsh list --all #源宿主機virsh list --all #目標宿主機

14、源宿主機刪除xml配置文件

virsh destroy CQ-NGINX01virsh undefine CQ-NGINX01

注意:

遷移過程中ping會有卡頓,有時會丟幾個包,如果虛擬機中有部署數據庫,應用程序最好有重連機制

回遷方法

建議不要刪除源宿主機上的鏡像文件,保留鏡像文件

#在目標宿主機上執行 ,回遷到源宿主機

virsh dumpxml CQ-NGINX01 >~/CQ-NGINX01.xmlvirsh migrate --live --copy-storage-all --unsafe --persistent CQ-NGINX01 qemu+tcp://root@192.168.1.24:16509/system

注意:

源宿主機和目標宿主機最好要保持硬件一致 ,這樣遷移和回遷出問題的幾率才能降到最低!

遷移速度和成功率和網絡有很大關系,宿主機的網絡盡量是萬兆或千兆多網卡綁定,可以提高遷移速度和成功率

#限制遷移速度 為600M/svirsh migrate-setspeed CQ-NGINX01 600

--------------------------------------------------------------------------------

在線遷移問題匯總

(如果ssh的端口不是默認22,可以寫為 qemu+ssh://target:port/system)

Question 1:

error: internal error hostname on destination resolved to localhost, but migration requires an FQDN

解決辦法很簡單,因為默認情況下hostname 是 localhost,我們需要把目標的hostname修改一下,臨時的也可以。

#hostname target

Question 2:
error: internal error Attempt to migrate guest to the same host 00020003-0004-0005-0006-000700080009

這個在mail list 中有大牛說是服務器提供商的問題,你可以用#dmidecode -s system-uuid 查看一下這個ID,理論上是#virsh sysinfo | grep uuid 及# virsh capabilities | grep uuid

這三個ID是一樣的。(之前看論壇里發的解決方法是需要下載一個dmidecode 命令的文件去替換系統的,達到修改的目的,不過我只是修改了libvirt的配置文件就可以了,可能是版本的問題)

我們修改一下libvirtd的配置文件

#sed -i "/#host_uuid/ahost_uuid = /"`uuidgen`/"" /etc/libvirt/libvirtd.conf

重啟一下libvirtd 服務

# /etc/init.d/libvirtd restart

然后再查看一下

# virsh capabilities | grep uuid

Question 3:

error: unable to set user and group to '107:107' on '/image/vmtest/disk.img': No such file or directory

如果順利進入到這步的話,就很簡單了,沒有directory 直接創建一個就可以,沒有disk.img 直接create一個

注:創建的磁盤應該和源虛擬機的磁盤是一樣的大?。ǜ髴撌强梢裕┖透袷剑╮aw還是qcow2)

qemu-img create /image/vmtest/disk.img +sizeG

Question 4:

error: Unable to resolve address 'target' service '49155': Name or service not known

《《Name or service not known》》在/etc/hosts 添加解析的ip和target的域名即可

Question 5:

virsh migrate --live --copy-storage-all --unsafe --persistent CQ-NGINX01  qemu+tcp://root@192.168.1.24:16509/system

error: Unable to read from monitor: Connection reset by peer

可能目標宿主機和源宿主機內存不夠

建議:目標宿主機和源宿主機上都關閉一些不必要的虛擬機把內存騰出來

也可以清空cache把內存騰出來

#清除cache 首先執行sync命令

syncecho 3 > /proc/sys/vm/drop_caches

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 时尚| 东海县| 华亭县| 永安市| 门头沟区| 称多县| 浮梁县| 泸西县| 巴彦淖尔市| 定州市| 湛江市| 商洛市| 丹棱县| 柞水县| 铅山县| 沐川县| 孟连| 昂仁县| 余干县| 绥德县| 栖霞市| 太白县| 仙居县| 永登县| 治多县| 永宁县| 元谋县| 五峰| 锡林浩特市| 都昌县| 合山市| 横峰县| 山西省| 广德县| 康平县| 湄潭县| 新营市| 军事| 新营市| 华安县| 景德镇市|