Articles of ZFS

导出的ZFS池不可用

前一段时间我的ZFS池变得不可用了,我尝试了一些东西来获取它上面的文件,以删除我所能做的。 我放弃了ZFS的知识。 但是,我正在build立一个新的服务器,我希望在build立一个新的系统之前至less恢复两个好的驱动器上的内容。 当我做一个zpool列表时,我列出了一些rpool,但是我的大型坦克池RaidVol没有列出。 但是,当我使用zpool导入时,我得到以下内容: pool: RaidVol id: 16881038089561338671 state: UNAVAIL status: One or more devices are missing from the system. action: The pool cannot be imported. Attach the missing devices and try again. see: http://illumos.org/msg/ZFS-8000-3C config: RaidVol UNAVAIL insufficient replicas raidz1-0 UNAVAIL insufficient replicas c6t0d0 ONLINE c6t1d0 ONLINE 4996290435585416026 UNAVAIL cannot open c6t3d0 UNAVAIL […]

如何用zfs镜像两个条纹的硬盘。

我有两个1G + 1G磁盘条纹在一起。 (例如文件名) config: NAME STATE READ WRITE CKSUM xxx ONLINE 0 0 0 /media/user/storage/x1 ONLINE 0 0 0 /media/user/storage/x5 ONLINE 0 0 0 现在我买了2G硬盘。 这是可能的镜像条纹得到这样的事情: config: NAME STATE READ WRITE CKSUM xxx ONLINE 0 0 0 mirror stripe /media/user/storage/1G-1 ONLINE 0 0 0 /media/user/storage/1G-2 ONLINE 0 0 0 /media/user/storage/2G-1 ONLINE 0 0 0

Linux上的ZFS:如何正确configurationvdev_id.conf文件并触发vdev别名?

我一直在试图让Linux上的ZFS读取/处理vdev_id.conf文件并给我一个/ dev / disk / by-vdev目录,但是没有用。 我有一个SAS HBA与多个硬盘驱动器的冗余连接。 我已经阅读了文档,但是我不太清楚要在PCI_ID列中放置什么。 我已经把所有的东西都默认出来了,而且我甚至没有看到目录“by-vdev”。 我运行命令“udevadm触发器”,但我得到错误或输出,只是一个回报。 这是我的文件: multipath yes # PCI_SLOT HBA PORT CHANNEL NAME channel 85:00.0 1 A channel 85:00.0 0 B channel 86:00.0 1 A channel 86:00.0 0 B 我启用了multipathd,使用“mpathconf –enable”命令删除了blacklist-all指令,并在/ dev / mapper中获得了mpath设备。 不知道从哪里去填充by-vdev目录。 OS是内核4.8的CentOS 7.3 感谢您的帮助!

通过LUKS(NBD或NFS)的ZFS? 需要encryption复制解决scheme

我在家中和远程服务器上使用LUKS上的ZFS(ZoL)。 所有工作都完美而快速。 我通过cron做快照,但是现在我想将它们复制到一些备份存储。 我有一个小硬盘dlink dns-323 nas,我已经安装了debian。 我的要求是备份encryption。 我不确定可以将ZFS和Luks安装到NAS中。 我的问题可能很愚蠢,我知道这听起来很疯狂,但在这种情况下我只有一个想法。 在NAS上创buildLUKS和ZPOOL,但在工作站上通过LAN远程解锁和运行。 通过NFS或NBD。 这听起来如何? 如果我的局域网连接是稳定的,确定,它会运行良好吗? 我想过rsync,zfs send / gpg,但我需要能够删除备份框上的一些快照,并希望它自动pipe理,并保持与主同步。 有任何想法吗?

生产服务器上的ZFS不希望在启动时强制安装

我在生产远程gentoo服务器上使用ZFS。 一切都很好,直到我的服务器冻结,我需要重新启动它。 安装rootfs时出现“device or resource busy”错误。 简单的行动需要避免这一点 – 导入和导出它。 但对我来说真的很难。 远程pipe理虚拟光盘挂载是非常缓慢的,越野车,我做了什么是从生活光盘启动,导入-f池和出口。 但为什么它不是在启动时被迫? 为什么我需要做这些额外的步骤? 我的内核行是:linux /kernel-genkernel-x86_64-4.9.11-hardened real_root = ZFS = mypool / ROOT / rootfs dozfs = force by = id net.ifnames = 0 zfsforce = 1 zfs version是0.6.5.9 我有两个“强制”关键字,它忽略了这一点! 该怎么办?

在重新启动后在centos上找不到zfs模块

在我重新启动CentOS服务器之后,ZFS不起作用: $ sudo zfs list The ZFS modules are not loaded. Try running '/sbin/modprobe zfs' as root to load them. $ sudo modprobe zfs modprobe: FATAL: Module zfs not found. 我的操作系统版本是CentOS Linux release 7.2.1511 (Core)和uname -r打印3.10.0-327.18.2.el7.x86_64 。 我注意到一些软件包似乎在机器启动时自动更新 – 我在/var/log/yum.logfind以下条目: Feb 28 10:11:17 Updated: epel-release-7-9.noarch Feb 28 10:11:29 Updated: openblas-openmp64-0.2.19-4.el7.x86_64 Feb 28 10:11:30 Updated: openblas-threads64_-0.2.19-4.el7.x86_64 […]

在只有部分数据集被删除时,澄清ZFS上的重复数据删除表大小

我试图清楚从重复数据删除表/内存影响的angular度来看,zfs重复数据删除是如何处理池中某些(但不是全部)数据集的情况。 我在2012年发现了FreeBSD邮件列表中的这句话 : “请注意,只有启用了重复数据删除的文件系统才会参与重复数据删除。重复数据删除=closures的文件系统不会经过重复数据删除。” 例如,假设我们有两个zpools,A和B. Pool A有4个数据集,包含21 TB的数据: 数据集#1和#2每个都包含0.5 TB的数据和重复数据删除 数据集#3和#4每个都包含10 TB的数据,并进行重复数据删除 池B有一个包含1 TB数据的数据集,并进行重复数据删除。 很明显,重复数据删除function适用于整个每个池。 不清楚的是,重复数据删除的内存影响是否仅基于重复数据集? 换句话说,所有其他条件相同的情况下,池A和池B的重复数据删除表大小和内存影响是否相似,或者池A的池内的重复数据池大小是否大于池B? 我认为重复数据表必须是相似的(设置池范围,但不影响任何非重复数据集的大小),主要是因为如果它大得多,就相当于强制对整个池进行重复数据删除,而不仅仅是特定的数据集。 但是,我不清楚这是否真的如此。

公开在ZFS卷下挂载的未导出的文件系统,作为卷的NFS共享的一部分

我在我用作networkingNAS(称为data / nas&'data'raidz zpool的一部分)的服务器上有一个ZFS卷,我使用ZFS属性设置sharenfs通过NFS将这个卷暴露给我的LAN。 这工作很好,并已经非常简单的pipe理。 我最近有一个8TB的希捷档案SMR硬盘,充满了我想通过我的NAS的NFS共享暴露的一些数据。 由于这是一个档案SMR驱动器,我只想装载和公开这个驱动器在只读模式下(因为在这些驱动器上的重写性能预计是很糟糕的),这可能不是一个很好的候选添加到ZFS(都是由于事实上它已经存在,并且SMR驱动器不是ZFS下performance最好的)。 目前的格式是UFS。 我想要做的是将驱动器挂载到某个地方(比如说/ mnt / foo),然后将挂载该位置的数据绑定到我的数据/ nas ZFS共享目录下,从而通过现有的NFS共享公开数据。 我已经读过在sharenfs选项中设置一些crossmnt和nohide的组合,可能会允许两个NFS导出之间的这种关系。 但是,由于我的存档驱动器不是ZFS,因此使用它的NFS导出也不会像ZFS卷那样简单; 即使这个策略是有效的。 有谁知道,如果这种跨文件系统的NFS策略可以工作,特别是如果挂载的子文件系统不是ZFS NFS导出(或任何NFS导出,就此而言)? 如果是的话,需要configuration什么types的选项来确保跨NAS连接可靠地访问这个子文件系统? 仅供参考:此服务器运行SmartOS(Illumos),因此具有本机ZFS和UFS文件系统支持。

zfs破坏后恢复数据

在Debian 8.7上我有一个zfs池。 (显然在Linux上使用ZFS,而不是Oracle或Solaris zfs) 需要将ZFS池从2个磁盘上的镜像扩展到4个磁盘上的RAID。 我做了备份(一份数据 – 这是我的第一个错误) 我以为zpool destroy将不会工作,直到我删除所有数据集(卷),所以我做了zfs destroy (这是我的第二个错误)。 之后,我发布了“zpool destroy”,重新分区了所有4个磁盘,发现备份已损坏。 所以我开始了我的恢复冒险:关于ZFS的第一件好事就是它能够导入被破坏的池。 在zpool destroy yourPoolName您可以调用zpool import -D来查看已销毁池的列表。 然后你可以使用zpool import -D yourPoolName来修改它,或者如果你已经销毁了几个同名的池,那么你可以通过由zpool import -D显示的id来导入它。 zpool import -D需要分区在原来的位置。 它必须精确到部门。 我已经使用fdisk创build了具有确切的开始和结束扇区号的分区。 我已经使用cfdisk来设置分区types(因为它更友好:))然后,你应该调用partprobe ,以确保操作系统知道更改分区。 zpool import -D工作就像一个魅力,我有我的池在线健康再次完美!..但由于zfs destroy全部后果 – 所有的数据丢失。 ZFS将事务中的文件和文件系统更改存储到事务组(TXG)中的磁盘上。我的进一步研究表明,我必须回滚最后一个事务组。 有两种方法可以回滚ZFS事务组 : 使用带-T选项的特殊zpool import 使用zfs_revert-0.1.py 首先你需要find最后一个好的TXG。 zpool history -il帮助了我。 根据第一种方法,你应该调用类似于: zpool import -o readonly=on -D […]

将Raid 5装载到Ganeti VM

我运行一个节点Ganeti服务器Supermicro MBD-X10SDV-6C + -TLN4F-O与英特尔至强D-1528和32 GB的RAM我有以下设置: OS Ubuntu 16.04.2 Raid 1中的2X 250GB固态硬盘 – >实例的操作系统和LVM的ext4分区 raid 5中的3X 1TB WD Red安装在/ data – > ext4 1X 2TB WD Red安装在/ Backup – > ext4 现在对于我的NextCloud,我想保持数据与实例磁盘分离,只需将Raid 5设备挂载到NextCloud实例以存储数据,以便随时replaceGaneti Instance,而不会丢失数据。 其他实例(OpenVpn,dnsmaq,Radius等)不需要访问Raid设备,因此我将使用configurationpipe理。 什么是最好的方式来实现这一点,是更好的只是将其挂载为NFS或可能将ext4转换为ZFS和NFS挂载? 有没有其他的方法? 先谢谢了