首页 > 代码库 > qemu-kvm: Migrate: socket bind failed
qemu-kvm: Migrate: socket bind failed
1、错误信息
qemu-kvm: Migrate: socket bind failed
2、原因:
其原因是qemu迁移端口与glusterfs端口冲突导致的
3、解决方法:
这种问题有两种解决办法:
第一:
解决办法,在所有安装glusterfs的机器上执行:
# vi /etc/glusterfs/glusterd.vol
在“end-volume”之前加入一行:
option base-port 50152 (写其它端口也可以,反正不要写49152)
然后,重启glusterfs服务
第二:
# virsh migrate --live rhel qemu+ssh://10.66.100.102/system --verbose
error: internal error Process exited while reading console log output: char device redirected to /dev/pts/2
qemu-kvm: Migrate: socket bind failed: Address already in use
Migration failed. Exit code tcp:[::]:49152(-1), exiting.
verify with build:libvirt-0.10.2-37.el6.x86_64
step:
S1:
1:prepare gluster server and client(on migration source and dst.)
2:mount gluster pool both on souce and dst.
10.66.100.103:/gluster-vol1 on /var/lib/libvirt/migrate type fuse.glusterfs (rw,default_permissions,allow_other,max_read=131072)
3:prepare a guest with gluster storage
4:check port on dst.
tcp 0 0 0.0.0.0:49152 0.0.0.0:* LISTEN 0 194240 29866/glusterfsd
tcp 0 0 10.66.100.102:49152 10.66.100.103:1015 ESTABLISHED 0 194475 29866/glusterfsd
tcp 0 0 10.66.100.102:49152 10.66.100.102:1021 ESTABLISHED 0 194462 29866/glusterfsd
tcp 0 0 10.66.100.102:1016 10.66.100.102:49152 ESTABLISHED 0 194748 30008/glusterfs
tcp 0 0 10.66.100.102:1018 10.66.100.103:49152 ESTABLISHED 0 194464 29879/glusterfs
tcp 0 0 10.66.100.102:1015 10.66.100.103:49152 ESTABLISHED 0 194751 30008/glusterfs
tcp 0 0 10.66.100.102:49152 10.66.100.103:1017 ESTABLISHED 0 194466 29866/glusterfsd
tcp 0 0 10.66.100.102:49152 10.66.100.102:1016 ESTABLISHED 0 194749 29866/glusterfsd
tcp 0 0 10.66.100.102:1021 10.66.100.102:49152 ESTABLISHED 0 194461 29879/glusterfs
4:do migration
5:repeat 20 times, no error occured.
S2:
1:prepare a guest same with S1
2:do live migrate then cancelled
# virsh migrate rhel qemu+ssh://10.66.100.102/system --verbose
Migration: [ 2 %]^Cerror: operation aborted: migration job: canceled by client
3:before migration canceled, check port on dst.:
tcp 0 0 :::49153 :::* LISTEN 107 212413 931/qemu-kvm
tcp 0 0 ::ffff:10.66.100.102:49153 ::ffff:10.66.100.103:52244 ESTABLISHED 107 212487 931/qemu-kvm
after canceled, check port again:
# netstat -laputen | grep 49153
no output
if cancelled the job, the port cleaned up, can reused in next migration
S3:
1:config /etc/libvirt/qemu.conf, edit and restart libvirtd
migration_port_min = 51152
migration_port_max = 51251
2:do migration
3:check dst. port
# netstat -laputen | grep 51
tcp 0 0 10.66.100.102:1015 10.66.100.103:49152 ESTABLISHED 0 194751 30008/glusterfs
tcp 0 0 :::51152 :::* LISTEN 107 214187 1179/qemu-kvm
tcp 0 0 ::ffff:10.66.100.102:51152 ::ffff:10.66.100.103:56922 ESTABLISHED 107 214260 1179/qemu-kvm
# virsh migrate rhel qemu+ssh://10.66.100.102/system --verbose
Migration: [100 %]
migration worked well.
qemu-kvm: Migrate: socket bind failed