几周前,我将我的 ubuntu 服务器从 14.04 更新到 16.04,结果弄乱了我的 zfs z1 池 (4x 3TB)。我能够让池再次联机,但某些分区现在不是同一个 /dev/sd* 设备。这导致以下情况:
Device "12233750374993511418 was /dev/sdd1"
user@host:/etc# zpool status zfspool
pool: zfspool
state: DEGRADED
status: One or more devices could not be used because the label is missing or invalid. Sufficient replicas exist for the pool to continue functioning in a degraded state.
action: Replace the device using 'zpool replace'.
see: http://zfsonlinux.org/msg/ZFS-8000-4J
scan: none requested
config:
NAME STATE READ WRITE CKSUM
zfspool DEGRADED 0 0 0
raidz1-0 DEGRADED 0 0 0
sda ONLINE 0 0 0
sdb ONLINE 0 0 0
sdc ONLINE 0 0 0
12233750374993511418 UNAVAIL 0 0 0 was /dev/sdd1
errors: No known data errors
更新之前,池由 4 个设备(sda、sdb、sdc 和 sdd)组成,启动 USB 棒是 sde。现在启动 USB 棒是 sdd(1,2,5)。就像 zpool status 输出已经说的那样:设备“12233750374993511418 是 /dev/sdd1”,zpool 中的旧 sdd 现在是 sde。
Now:
user@host:/etc# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 2,7T 0 disk
├─sda1 8:1 0 2,7T 0 part
└─sda9 8:9 0 8M 0 part
sdb 8:16 0 2,7T 0 disk
├─sdb1 8:17 0 2,7T 0 part
└─sdb9 8:25 0 8M 0 part
sdc 8:32 0 2,7T 0 disk
├─sdc1 8:33 0 2,7T 0 part
└─sdc9 8:41 0 8M 0 part
sdd 8:48 1 57,9G 0 disk
├─sdd1 8:49 1 53,9G 0 part /
├─sdd2 8:50 1 1K 0 part
└─sdd5 8:53 1 4G 0 part [SWAP]
sde 8:64 0 2,7T 0 disk
├─sde1 8:65 0 2,7T 0 part
└─sde9 8:73 0 8M 0 part
fstab 还告诉我:“# / 在安装期间位于 /dev/sde1 上”
user@host:/etc# cat /etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sde1 during installation
UUID=48c56de3-90fb-4cf1-ac76-5e224fe29048 / ext4 errors=remount-ro 0 1
# swap was on /dev/sde5 during installation
UUID=a0c83bcc-711e-4830-a2b5-d514785d7939 none swap sw 0 0
现在我的问题是如何将启动 USB 切换回 sde(1,2,5),并将第 4 个硬盘切换回 sdd,以便 zpool 状态不再为 DEGRADED。或者任何其他解决方案。是否可以再次使用 sda、sdb、sdc 和 sde 导出和导入池?
我非常感谢每一个答案
答案1
要恢复您的设备zpool
,您可以导出然后再次导入zpool
。在导入期间,您可以使用路径/dev/disk/by-id
,该路径通过序列号标识磁盘,这使得设置比使用/dev/sd*
设备命名更可靠。
在导出/导入过程中,文件系统将脱机,因此请确保没有进程正在访问 ZFS 文件系统上的文件。
zpool export zfspool
zpool import -d /dev/disk/by-id zfspool