Linux 操作系统
特征
在一个EL5 PVM 关于Oracle虚拟机客户服务器,当open-iscsi尝试登录到目标,它将会袭击客户系统
iscsi: registered transport (cxgb3i)
iscsi: registered transport (bnx2i)
iscsi: registered transport (tcp)
iscsi: registered transport (iser)
iscsi: registered transport (be2iscsi)
Vendor: EQLOGIC Model: 100E-00 Rev: 4.3
Type: Direct-Access ANSI SCSI revision: 05
scsi 0:0:0:0: Attached scsi generic sg0 type 0
register_blkdev: cannot get major 8 for sd
SCSI device sda: 209725440 512-byte hdwr sectors (107379 MB)
sda: Write Protect is off
SCSI device sda: drive cache: write through
kobject_add failed for sda with -EEXIST, don't try to register things with the same name in the same directory.
Call Trace:
[] kobject_add+0x170/0x19b
[] exact_lock+0x0/0x14
[] register_disk+0x43/0x190
[] add_disk+0x34/0x3d
[] :sd_mod:sd_probe+0x2f7/0x356
[] driver_probe_device+0x52/0xaa
[] __driver_attach+0x65/0xb6
[] __driver_attach+0x0/0xb6
[] bus_for_each_dev+0x43/0x6e
[] bus_add_driver+0x76/0x110
[] sys_init_module+0xaf/0x1f2
[] tracesys+0xab/0xb6
Unable to handle kernel NULL pointer dereference at 0000000000000010
RIP: [] create_dir+0x11/0x1cf PGD 1ac622067 PUD 1ac745067 PMD 0 Oops: 0000 [1] SMP
last sysfs file: /class/scsi_generic/sg0/dev
CPU 0
Modules linked in: sd_mod sg ib_iser rdma_cm ib_cm iw_cm ib_sa ib_mad ib_core
ib_addr iscsi_tcp be2iscsi bnx2i cnic uio cxgb3i cxgb3 8021q libiscsi_tcp
libiscsi2 scsi_transport_iscsi2 scsi_transport_iscsi autofs4 hidp nfs fscache
nfs_acl rfcomm l2cap bluetooth lockd sunrpc ip_conntrack_netbios_ns
ipt_REJECT xt_state ip_conntrack nfnetlink iptable_filter ip_tables
ip6t_REJECT xt_tcpudp ip6table_filter ip6_tables x_tables ipv6 xfrm_nalgo
crypto_api dm_multipath scsi_dh scsi_mod parport_pc lp parport pcspkr xennet
dm_raid45 dm_message dm_region_hash dm_mem_cache dm_snapshot dm_zero
dm_mirror dm_log dm_mod xenblk ext3 jbd uhci_hcd ohci_hcd ehci_hcd
Pid: 2244, comm: modprobe Not tainted 2.6.18-194.3.1.0.2.el5xen #1
RIP: e030:[] [] create_dir+0x11/0x1cf
RSP: e02b:ffff8801ac081d78 EFLAGS: 00010282
RAX: ffff8801ad339270 RBX: ffff8801bea1d4f0 RCX: ffff8801ac081db0
RDX: ffff8801bea1d4f8 RSI: 0000000000000000 RDI: ffff8801bea1d4f0
RBP: ffff8801bea1d4f0 R08: 0000000000000001 R09: ffff880001cdf000
R10: 0000000000000000 R11: ffff8801ac081b88 R12: ffff8801bea1d4f0
R13: ffff8801ac081db0 R14: 0000000000000000 R15: ffff8801ad339270
FS: 00002b7ea1798240(0000) GS:ffffffff805d2000(0000) knlGS:0000000000000000
CS: e033 DS: 0000 ES: 0000
Process modprobe (pid: 2244, threadinfo ffff8801ac080000, task ffff8801b1091100)
Stack: ffff8801bea1d4f0 ffff8801bea1d300 ffff8801bea1d4f0 ffff8801ac6c2000
0000000000000000 ffffffff80300603 ffff8801ad339270 0000000000000000
ffff8801bea1d4f0 ffffffff80342729
Call Trace:
[] sysfs_create_dir+0x58/0x76
[] kobject_add+0xdc/0x19b
[] blk_register_queue+0x33/0x77
[] :sd_mod:sd_probe+0x2f7/0x356
[] driver_probe_device+0x52/0xaa
[] __driver_attach+0x65/0xb6
[] __driver_attach+0x0/0xb6
[] bus_for_each_dev+0x43/0x6e
[] bus_add_driver+0x76/0x110
[] sys_init_module+0xaf/0x1f2
[] tracesys+0xab/0xb6
Code: 48 8b 7e 10 48 89 d3 48 81 c7 b8 00 00 00 e8 7a 38 f6 ff fc
RIP [] create_dir+0x11/0x1cf
RSP
CR2: 0000000000000010
Kernel panic - not syncing: Fatal exception
变化
配置的sd* front_end 块设备名字在为RHEL/EL客户在Oracle虚拟机服务器上的虚拟机配置
引起的原因
Xen 块设备驱动会使用来自其他地方的设备名字。如果有人想要他们的VBD设备拥有SCSI名字,当在客户中没有真正的或者SCSI设备就可以。or example ISCSI. so far, no way for the various drivers to manage the device-number space for a particular prefix, in this case "sd".
解决办法
有一个当前对于xen-devel的讨论来定义虚拟设备应用什么和考虑方法来允许VBDs来分享设备名字空间,从现在起,最好是给Xen VBDs预置xvd.