我在Ubuntu 14.04上创建了一个ZFS池而没有指定RAID或冗余选项,向它写了一些数据,重新启动了机器并且池不再可用(UNAVAIL).我手头没有确切的错误,但它提到没有足够的复制可用.我在池中创建了两个数据存储区,其中包含2个3TB磁盘.我建议ZFS使用重复数据删除功能,此时我并不关心冗余.
我实际上只想要RAID0,所以短期内不需要镜像或冗余.有没有办法用ZFS做到这一点,或者我会更好地使用LVM?
zpool status -v: sudo zpool status -v pool: cryptoporticus state: UNAVAIL status: One or more devices could not be used because the label is missing or invalid. There are insufficient replicas for the pool to continue functioning. action: Destroy and re-create the pool from a backup source. see: http://zfsonlinux.org/msg/ZFS-8000-5E scan: none requested config: NAME STATE READ WRITE CKSUM cryptoporticus UNAVAIL 0 0 0 insufficient replicas sda ONLINE 0 0 0 sdc UNAVAIL 0 0 0
UPDATE
zpool export cyrptoporticus,然后zpool import cryptoporticus解决了这个问题.这可能会在重启时再次发生吗?
解决方法
您可能会看到至少有一个已用磁盘不可用的情况.这可能是间歇性的和可解决的,Linux实现(Linux上的ZFS以及zfs-fuse)似乎偶尔出现打嗝,这些打嗝很容易通过zpool clear或zpool export / zpool导入周期来解决.
至于你的问题,是的,ZFS完全有能力创建和维护一个没有任何冗余的池,只需发布类似zpool create mypool sdb sdc sdd.
但就个人而言,我不会仅仅将ZFS用于其重复数据删除功能.由于其体系结构,ZFS重复数据删除将需要大量的RAM和大量的磁盘I / O来进行写操作.您可能会发现它不适合与您一样大的池,因为写入会变得非常缓慢.如果您需要重复数据删除,您可能希望查看具有较小内存和I / O占用空间的脱机重复数据删除实现,例如使用bedup进行btrfs文件级批量重复数据删除或使用dupremove进行块级重复数据删除:https://btrfs.wiki.kernel.org/index.php/Deduplication