我正在尝试在Ubuntu 16.04 Xenial上捆绑的OpenZFS。
创建池时,我总是按/dev/disk/by-id/
(或/dev/disk/gpt
在FreeBSD上)它们的序列号引用驱动器,以提高弹性。/dev
重新引导计算机时,驱动器的顺序并不总是相同的,并且如果计算机中还有其他驱动器,则池可能无法正确安装。
例如,zpool status
在14.04盒子上运行,我得到以下信息:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
ata-Hitachi_HDS722020ALA330_[..] ONLINE 0 0 0
ata-Hitachi_HDS722020ALA330_[..] ONLINE 0 0 0
ata-Hitachi_HDS722020ALA330_[..] ONLINE 0 0 0
ata-Hitachi_HUA722020ALA330_[..] ONLINE 0 0 0
但是当我在16.04上用这个(缩写)创建一个新池时:
zpool create pool raidz \
/dev/disk/by-id/ata-Hitachi_HDS723030ALA640_[..] \
/dev/disk/by-id/ata-Hitachi_HDS723030ALA640_[..] \
/dev/disk/by-id/ata-Hitachi_HDS723030ALA640_[..] \
/dev/disk/by-id/ata-Hitachi_HDS723030ALA640_[..]
我得到这个zpool status
:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
sdf ONLINE 0 0 0
sde ONLINE 0 0 0
sdd ONLINE 0 0 0
sda ONLINE 0 0 0
看起来zpool遵循了符号链接,而不是引用它们。
有没有办法在创建池时强制16.04上的zpool尊重我的驱动器引用?或者,我是否对其在这里所做的事情感到担忧?
更新:解决方法
我在Github上找到了用于zfsonlinux 的线程,该线程建议了一种解决方法。/dev/sdX
首先使用设备创建zpool ,然后执行以下操作:
$ sudo zpool export tank
$ sudo zpool import -d /dev/disk/by-id -aN
我仍然希望能够在开始时做到这一点,zpool create
如果可能的话。
我仍然有一些raid-z池,对此感到遗憾。当我有能力购买替换磁盘时,我将创建具有镜像对的新池,并用于
—
cas
zfs send
将数据复制到新池中。实际上,对于我的mythtv盒来说raid-z可以,其中的性能并不关键,除非我一次运行6或8个转码作业。在我的/home
目录所在的池上,更改为镜像对将非常明显。
ZIL的镜像使您可以避免使用普通的廉价SSD,而不必使用带有大电容器的昂贵SSD来防止功耗。IMO,无论您拥有哪种SSD,ZIL的镜像都不是可选的-如果您的ZIL死了,则会丢失其中所有尚未写入的数据,并有可能损坏您的池。至于L2ARC,我特别说过不要镜像它们……镜像L2ARC缓存是浪费时间,金钱和良好的SSD空间(并且不能做任何事情来防止丢失缓存-您从何处得到这个主意?)
—
cas
:)顺便说一句,当我解释镜像ZIL的原因时,我的大脑工作不正常。这不是要防止功率损耗,这完全是胡说八道,我不应该这么说。这是为了防止ZIL驱动器发生故障。即RAID 1的ZIL镜像。通常,两个价格合理的固态硬盘要比一个极其昂贵的固态硬盘好(除非更昂贵的固态硬盘具有更快的接口,如PCI-e与SATA)。UPS是必不可少的……便宜的电力损耗保护。
—
cas
@cas镜像ZIL可在意外关闭的同时防止SLOG设备故障。在正常操作下,ZIL是只写的,并且从RAM(ARC)写入持久性存储。如果系统意外关闭,则使用意图日志(ZIL,SLOG)来完成被中断的写入。仅当意外关闭与SLOG设备故障同时发生时,才需要冗余SLOG来恢复中断的写入。对于大多数非服务器(和许多服务器)工作负载,SLOG是过大的,因为ZIL实际上仅在同步写入中起作用。
—
CVn
zfs export
和zfs import -d
仍然可以使用。顺便说一句,除非您真的需要每个字节的空间,否则请使用两个镜像对而不是raidz。raidz的性能优于raid-5,但仍比raid-10或zfs镜像对差很多。扩展由镜像对组成的池也更容易,一次只添加两个磁盘...使用raidz,您必须将每个驱动器替换为更大的驱动器,只有更换了所有驱动器后,游泳池有更多可用空间。