“zpool create”无限期挂起

“zpool create”无限期挂起

我有一台 Solaris 11.1 机器,它通过扩展器 (LSISAS2X36) 通过 LSI 1068 控制器连接了一些磁盘。该设置过去运行得相当好,但当我添加另一批磁盘时,我看到了一些奇怪的效果:

  • format如果我没有指定,则在选择磁盘(任何磁盘)后挂起NOINUSE_CHECK=1
  • 我无法创建新池,一个简单的zpool create test c10d20t0会挂起 - 似乎由于与此相同的原因format。NOINUSE_CHECK 变量似乎没有效果,尽管旧闻档案似乎表明它对 Solaris 的早期版本有帮助。

我已经尝试运行devfsadm -Cv来清理不存在设备的 dev 条目,但无济于事。我还认为新添加的磁盘之一上的无效分区信息可能会导致“正在使用”检查挂起并运行fdisk所有添加的磁盘的菜单以创建 100% Solaris 分区,但这也无济于事。

Atruss zpool create test c10t20d0揭示了很多阅读链接,/dev/rdsk/并以这些行结束:

readlink("/dev/zvol/rdsk/rpool/dump", "../../../..//devices/pseudo/zfs@0:1,raw", 1023) = 39
lstat("/dev", 0xF8D35310)                       = 0
lstat("/dev/zvol", 0xF8D35310)                  = 0
lstat("/dev/zvol/rdsk", 0xF8D35310)             = 0
lstat("/dev/zvol/rdsk/rpool", 0xF8D35310)       = 0
lstat("/dev/zvol/rdsk/rpool/swap", 0xF8D35310)  = 0
readlink("/dev/zvol/rdsk/rpool/swap", "../../../..//devices/pseudo/zfs@0:2,raw", 1023) = 39
open("/devices/pseudo/devinfo@0:devinfo", O_RDONLY) = 7
ioctl(7, DINFOIDENT, 0x00000000)                = 57311
ioctl(7, 0x10DF00, 0xF8D36F10)                  = 380014
ioctl(7, DINFOUSRLD, 0x08D62000)                = 380928
close(7)                                        = 0
close(6)                                        = 0
munmap(0xF5FE1000, 4096)                        = 0
munmap(0xF5FD2000, 20480)                       = 0
munmap(0xF5FC7000, 24576)                       = 0
munmap(0xF6014000, 110592)                      = 0
munmap(0xF6030000, 40)                          = 0
close(5)                                        = 0
stat64("/opt/VRTSvxvm/lib/libsysevent.so.1", 0xF8D36910) Err#2 ENOENT
stat64("/lib/libsysevent.so.1", 0xF8D36910)     = 0
resolvepath("/lib/libsysevent.so.1", "/lib/libsysevent.so.1", 1023) = 21
open("/lib/libsysevent.so.1", O_RDONLY)         = 5
mmapobj(5, MMOBJ_INTERPRET, 0xF6040B78, 0xF8D3697C, 0x00000000) = 0
close(5)                                        = 0
mmap(0x00000000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0) = 0xF5FE0000
memcntl(0xF6020000, 11280, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
getuid()                                        = 0 [0]
statvfs("/system/volatile", 0xF8D369B0)         = 0
stat("/system/volatile/sysevent_channels", 0xF8D36A50) = 0
mkdir("/system/volatile/sysevent_channels/syseventd_channel", 0755) Err#17 EEXIST
stat("/system/volatile/sysevent_channels/syseventd_channel", 0xF8D368F0) = 0
getuid()                                        = 0 [0]
modctl(MODEVENTS, 0x00000006, 0x08D560EB, 0x00000000, 0xF8D36880) = 0
modctl(MODEVENTS, 0x00000006, 0x08D560EB, 0x00000000, 0xF8D36A40) = 0
unlink("/system/volatile/sysevent_channels/syseventd_channel/59") Err#2 ENOENT
open("/system/volatile/sysevent_channels/syseventd_channel/59", O_RDWR|O_CREAT, 0600) = 5
door_create(0xF6024174, 0x08D56088, DOOR_REFUSE_DESC|DOOR_NO_CANCEL) = 6
getpid()                                        = 22082 [22081]
priocntlsys(1, 0xF8D365B0, 3, 0xF8D366A0, 0)    = 22082
priocntlsys(1, 0xF8D36540, 1, 0xF8D36600, 0)    = 4
priocntlsys(1, 0xF8D36500, 0, 0xF6575FB8, 0)    = 4
mmap(0x00000000, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0) = 0xF5FBF000
mmap(0x00000000, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0) = 0xF5FA0000
sigaction(SIGCANCEL, 0xF8D366C0, 0x00000000)    = 0
sysconfig(_CONFIG_STACK_PROT)                   = 3
mmap(0x00000000, 1040384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON, -1, 0) = 0xF5EA1000
mmap(0x00010000, 65536, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xF5E90000
getcontext(0xF8D36510)
uucopy(0xF8D364D0, 0xF5F9EFEC, 20)              = 0
lwp_create(0xF8D36760, LWP_DETACHED|LWP_SUSPENDED, 0xF8D3675C) = 2
/1:     lwp_continue(2)                                 = 0
/2:     lwp_create()    (returning as new lwp ...)      = 0
/1:     yield()                                         = 0
/2:     setustack(0xF5E902A0)
/2:     schedctl()                                      = 0xF623B040
/1:     umount2("/system/volatile/sysevent_channels/syseventd_channel/59", 0x00000000) Err#22 EINVAL
/1:     ioctl(6, I_CANPUT, 0x00000000)                  Err#89 ENOSYS
/1:     door_info(6, 0xF8D36640)                        = 0
/1:     mount(0, "/system/volatile/sysevent_channels/syseventd_channel/59", MS_DATA|MS_NOMNTTAB, "namefs", 0xF8D3663C, 4, 0x00000000, 0) = 0
/1:     close(5)                                        = 0
/1:     open("/system/volatile/sysevent_channels/syseventd_channel/reg_door", O_RDONLY) = 5
/2:     door_return(0x00000000, 0, 0x00000000, 0xF5F9EE00, 1007360) (sleeping...)
/1:     door_call(5, 0xF8D369F0)        (sleeping...)
^C/1:       Received signal #2, SIGINT, in door_call() [default]

truss format c10t20d0最后看起来几乎是一样的。

我还能做些什么来缩小可能的原因范围或只是尝试看看是否有效?

答案1

看起来系统无法很好地处理拔出的磁盘。尽管大部分功能似乎都正常工作,但即使在重新插入丢失的磁盘后,format和命令仍然挂起。zpool create

重新启动系统有帮助——快速重新启动就足够了。

相关内容