您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關大數據在線遷移的常見問題是怎么解決的,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
大致描述一下場景:系統采用了計算存儲松耦合結構,虛機的映像文件在遠端共享存儲上,所以遷移起來速度很快。在我們系統中,最快一個用了6秒,即完成了在線遷移,這是真正的live migration,我們一邊遷移,一邊故意在虛機里寫數據,也正常完成。
配置方案
1.修改Nova.conf文件
添加:
image_cache_manager_interval=0
live_migration_flag=VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_UNSAFE
修改:
vncserver_listen=0.0.0.0
2.參與的計算節點機器名字都能ping通。
3.修改計算節點上 /etc/libvirt/libvirtd.conf:
before : #listen_tls = 0
after : listen_tls = 0
before : #listen_tcp = 1
after : listen_tcp = 1
add: auth_tcp = "none"
4.修改 /etc/sysconfig/libvirtd:
before :# LIBVIRTD_ARGS="--listen"
after :LIBVIRTD_ARGS="–listen"
5.在源計算節點上修改要遷移虛機的/var/run/libvirt/qemu/instance–xxx.xml文件,刪除migrate-qemu-fd這一行,將vnc參數修改成0.0.0.0
6.重啟計算節點上nova
7備注:
1.由于云機之前沒有配置在線遷移,在遷移虛機之前,需要重啟虛機。
2..因為計算節點上libvirtd的配置中增加了auth_tcp="none",算是一個安全漏洞,需要尋找更安全的辦法,或者在遷移完成之后,注釋掉這行,重啟libvirt
3 已經編寫了一個輔助程序自動做遷移
遇到的問題和解決辦法
1.虛機的disk 的cache mode為writethrough,遷移的時候報錯
OpenStack認為在centos上磁盤cache mod為writethrough時,遷移是不安全的。
解決的辦法 :在nova.conf live_migration_flag參數后面增加VIR_MIGRATE_UNSAFE,官方在線遷移配置文件里沒有這個參數。
2.qemu1.4的一個bug導致遷移失敗
遷移失敗,在目的節點上/var/log/libvrit/qemu/instances--xxxx.log里:
char device redirected to /dev/pts/1 (label charserial1)
qemu: warning: error while loading state section id 2
load of migration failed
解決辦法:
1.在源計算節點上修改要遷移虛機的/var/run/libvirt/qemu/instance–xxx.xml文中刪除migrate-qemu-fd這一行
2.重啟源計算節點上的libvirtd
3.然后再執行nova live-migration命令
這個操作已經編寫了一個程序自動執行。
3.vncserver的問題,需要重啟虛擬機才可以遷移。
由于之前Nova.conf中vncserver_listen=計算機節點的ip,所以在虛擬機Kvm進程中參數中vnc=計算節點的ip,遷移的時候報錯,在目的節點綁定不了源節點的IP,所以需要修改Libvirt.xml配置文件,重啟虛機,然后才能進行遷移。
解決辦法:
1.在源計算節點上/var/run/libvirt/qemu/instance–xxx.xml文中將vnc的參數修改成0.0.0.0
2.重啟源計算節點libvirtd
3.然后再執行nova live-migration命令
這個操作已經編寫了程序來自動完成
4.遷移完成后console.log,disk屬主變成了root/root
遷移完成后,發現虛機的console.log和disk文件屬主由qemu.qumu變成了root.root,這個估計是OpenStack遷移程序的問題,這個問題目前沒有影響虛機。
解決辦法:
修改文件屬主,這個操作已經編寫了程序來自動完成
5.源節點和目的節點cpu不兼容問題
遷移失敗,在/var/log/nova/compute的日志:
"InvalidCPUInfo: Unacceptable CPU info: CPU doesn't have compatibility.\n\n0\n\nRefer to http://libvirt.org/html/libvirt-libvirt.html#virCPUCompareResult\n"]
解決辦法:
目前還沒有解決辦法
6.目的節點內存為負,
遷移失敗,從控制節點的api.log上輸出的錯誤是目的節點內存為-3400,不能滿足遷移的需要。
解決辦法:
用nova命令指定在該計算節點上創建虛機,能夠成功。估計是遷移時候的調度算法和創建虛機時的調度算法不一致。
7.錯誤日志,在2.4上api.log
遷移時候一般看的日志有:
1.目的節點上的/var/log/libvirt/qemu/instances–xxx.log
2.目的節點上的/var/log/nova/compute.log
3.源節點上的/var/log/nova/compute.log
有時候遷移失敗,命令行執行后報錯:
ERROR: Live migration of instance bd785968-72f6-4f70-a066-b22b63821c3b to host compute-13 failed (HTTP 400) (Request-ID: req-180d27b5-9dc7-484f-9d9a-f34cccd6daa2)
但在上述的三個日志文件中都看不到任何的錯誤信息。
解決辦法:
在控制節點或者是在操作遷移命令的節點上/var/log/nova/api.log有錯誤信息
走的彎路
1.嘗試不用修改nova.conf里的vncserver_listen參數為0.0.0.0,
將/var/run/log/libvirt/qemu/instances--xxx.log里的vnc改成目的節點的ip,重啟libvritd,然后進行遷移,可以成功,但如果遷移失敗,當需要重新虛機的時候,虛機啟動失敗,在/var/log/libvrit/qemu/instances-xx.log的錯誤是
Failed to start VNC server on `172.18.2.15:0': Failed to bind socket: Cannot assign requested address
而/mnt/instances/instance--xxx/libvirt.xml里沒有修改成目的節點的Ip。不知道這個參數被保存到了哪里
2.vnc 端口問題
在一次遷移失敗后,在目的節點/var/log/libvirt/qemu/instance--xxx.log里的錯誤是:
2013-11-05 05:42:39.401+0000: shutting down
qemu: terminating on signal 15 from pid 10271,
猜想是由于虛機在源節點上的vnc監聽端口在目的節點上被占用,所以導致啟動不了。后來在其他機器上做了測試發現,在遷移到目的節點后vnc的端口自己會調整。
上述就是小編為大家分享的大數據在線遷移的常見問題是怎么解決的了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。