当我尝试在两台机器之间设置 remus 时,remus 日志文件中出现错误,我不明白为什么会出现这种情况,我在两个系统上运行相同的 vms,因此尝试复制应该不是问题。日志文件如下
Disk is not replicated: phy:/dev/loop0,xvda,w
Disk is not replicated: phy:/dev/loop1,xvdb,w
tc qdisc add dev vif1.0 ingress
RTNETLINK answers: File exists
tc filter add dev vif1.0 parent ffff: proto ip pref 10 u32 match u32 0 0 action
mirred egress redirect dev ifb0
RTNETLINK answers: No such file or directory
We have an error talking to the kernel
Traceback (most recent call last):
File "/usr/bin/remus", line 219, in <module>
run(cfg)
File "/usr/bin/remus", line 125, in run
bufs.append(BufferedNIC(vif))
File "/usr/lib64/python2.6/site-packages/xen/remus/device.py", line 326, in __init__
self.setup()
File "/usr/lib64/python2.6/site-packages/xen/remus/device.py", line 358, in setup
self.bufdev.install(self.vif)
File "/usr/lib64/python2.6/site-packages/xen/remus/device.py", line 184, in install
'dev %s' % (vif.dev, self.devname))
File "/usr/lib64/python2.6/site-packages/xen/remus/util.py", line 71, in runcmd
proc.returncode)
xen.remus.util.PipeException: tc failed (errmsg: RTNETLINK answers: No such file or directory
We have an error talking to the kernel): 2, No such file or directory
获取此文件的remus命令如下:
remus -i 100 sles11-sp1-xm BackupMachineIP >/var/log/xen/domU-sles11-sp1-24-09-12.log 2>&1 &
BackupMachineIP设置为备份设备的IP地址名称,xm list的内容及各台机器上的loopback设备设置如下:
xm 列表
基本的:
Name ID Mem VCPUs State Time(s)
Domain-0 0 1036702 8 r----- 411617.9
sles11-sp1 512 4 0.0
sles11-sp1-xm 1 256 1 -b---- 77.0
sles11-sp2 512 4 0.0
sles11-sp2-xm 2 256 1 -b---- 62.0
次要的:
Name ID Mem VCPUs State Time(s)
Domain-0 0 1400 2 r----- 73.1
sles11-sp1-xm 1 256 1 -b---- 11.6
sles11-sp2-xm 2 256 1 -b---- 14.0
失败
基本的:
/dev/loop0: [0808]:337772 (/tmp/base/sles11sp1/sles11sp1.img)
/dev/loop1: [0808]:337773 (/tmp/base/sles11sp1/swap)
/dev/loop2: [0808]:337779 (/tmp/base/sles11sp2/sles11sp2.img)
/dev/loop3: [0808]:337780 (/tmp/base/sles11sp2/swap)
次要的:
/dev/loop0: [0805]:2109411 (/tmp/base/sles11sp1/sles11sp1.img)
/dev/loop1: [0805]:2109412 (/tmp/base/sles11sp1/swap)
/dev/loop2: [0805]:1840010 (/tmp/base/sles11sp2/sles11sp2.img)
/dev/loop3: [0805]:1840012 (/tmp/base/sles11sp2/swap)
答案1
您的内核可能没有加载镜像内核模块。通常它甚至没有与内核一起编译,因此您必须编译并加载它。如果模块未加载,RTNETLINK 会回答一个简单的 ENOENT(没有这样的文件或目录),这很愚蠢,我花了将近一天的时间才找出它不起作用的原因。