Articles of ZFS

你可以添加两个非镜像磁盘到zfs池吗?

有没有办法做这样的事情? zpool create newpool raidz / dev / disk1 / dev / disk2(/ dev / disk3 + / dev / disk4) 假设disk1和disk2较大,disk3和disk4较小。 你可以通过在disk3和disk4上创build和装载一个池,然后在其上创build一个大文件来得到最终结果(大概是性能命中) zpool创buildraidz / dev / disk1 / dev / disk2 / disk3和4 / somebigfile 但是我想知道这是否可以直接完成。 我在Ubuntu上。 编辑 马特的评论是正确的; 我想要创build三个设备的raidz:磁盘,磁盘和(两个磁盘一起组成一个更大的磁盘)。

FreeNAS / FreeBSD:如何从监狱访问ZFS卷的状态?

我试图设置NRPE来启用新的FreeNAS 0.91系统的远程Nagios监视。 我主要有这个工作。 我可以连接和查询过程数,用户等基本信息。 但是我不能运行zpool list来查询RAIDZ的健康状况,这是正确监控这个盒子的关键。 当我从主要的root帐户运行,它的工作原理: [stewlg@bauer] /dev# zpool list NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT BigMediaToo 21.8T 1.11T 20.6T 5% 1.00x ONLINE /mnt 但是当我从监狱里面运行它时,它并没有: root@NagiosJail:/usr/local/libexec/nagios # zpool list no pools available 我已经阅读了很多文章,但是我只是不确定我想让监狱环境做什么,所以我不知道要启用什么。 像这样的post似乎可能包含答案:但我不知道该怎么做。 是否需要编辑/etc/devfs.rules ? 系统布局,以帮助名称,如果有人有我的例子: /mnt/BigMediaToo单个ZFS卷 一个名叫NagiosJail的监狱。 它的数据集位于/mnt/BigMediaToo/JailsDataset 。

GlusterFs + zfs xattr

我试图设置一个小的文件服务器使用GlusterFs在ZFS两个目前正在运行的Ubuntu 13.04。 我目前正在使用glusterfs和zfs-fuse从ubuntu库和我已经能够成功地创build一个复制gluster卷超过xfs的那些软件包。 我也一直能够创buildzfs卷,没有任何问题。 当我尝试在zfspath上创build一个gluster卷时,问题就开始了:在发出命令之后 volume create apache-config-hosting replica 2 san1.local:/zfsroot/apache-config-hosting san2.local:/zfsroot/apache-config-hosting 我得到: 2013 Sep 3 11:05:29 san1 [2013-09-03 11:05:29.962269] C [posix.c:4723:init] 0-apache-config-hosting-posix: Extended attribute not supported, exiting. 以下来自各种教程的build议我也检查了xattr支持: zfs get xattr 我得到了 zfsroot/apache-config-hosting xattr on default 这意味着它可以启动并运行。 我错过了什么? 编辑:(添加/ etc / zfs / zfsrc的内容) vdev-cache-size = 10 max-arc-size = 100 zfs-prefetch-disable fuse-attr-timeout = 3600 […]

zfs:zpool空间映射颠簸 – 有没有修正?

对于比较完整和/或非常分散的zpools,我使用metaslabdebugging( echo metaslab_debug/W1 | mdb -kw )来避免空间映射抖动,并导致严重的写入性能echo metaslab_debug/W1 | mdb -kw 。 这个问题本身似乎已经老了,而且已经被理解了 ,有传言说这个修补程序已经有一段时间了,就像大概应该帮助的碎片整理API一样,但是我找不到一个“官方”方法默认在生产代码中进行修复。 有什么我错过了吗? 一些环境数据:我的zpools的大小适中(通常小于10TB),大多数zfs数据集使用默认logging大小8K(实际上由于通常启用压缩而变化)。 多年来,我看到这个问题出现在不同版本的Solaris中,尤其是对于已经看到大量数据的老版本的zpools。 请注意,这与zpool 90% full performance wall ,因为碎片造成的空间映射撞击的空间利用率水平显着较低(我发现它在几个旧池中发生率为70%),

Debian KVM和vm映像的位置不同于/ var / lib / libvirt / images

我已经为ZFS上的VM定义了存储池: virsh # pool-dumpxml zfs <pool type='dir'> <name>zfs</name> <uuid>b2fba550-467f-8133-dee8-44ada7d0a807</uuid> <capacity unit='bytes'>210316853248</capacity> <allocation unit='bytes'>32768</allocation> <available unit='bytes'>210316820480</available> <source> </source> <target> <path>/winvm/win1</path> <permissions> <mode>0700</mode> <owner>4294967295</owner> <group>4294967295</group> </permissions> </target> </pool> 为vms创buildRAW图像文件: host /winvm/win1 % l total 3.5K drwxrwxr-x. 2 root root 3 Jan 3 14:03 . drwxr-xr-x 3 libvirt-qemu libvirt-qemu 3 Dec 30 13:45 .. -rw——-. 1 libvirt-qemu libvirt-qemu […]

数据恢复硬件RAID与ZFS池

如何在zfs软件RAID或Synology硬盘RAID中发生磁盘故障后恢复数据? 这是否更容易,更less的腐败? 更容易写腐败比其他?

NFS客户端,ZFS服务器ZoL:cat to changed file not found

自从我们的客户从Ubuntu 12.04升级到Ubuntu 14.04后,我们遇到了麻烦。 行为: 在客户端AI上更改nfs共享上的现有文件foo。 在客户端BI上做一个猫富。 第一次安装后,它的工作。 猫显示foo的内容。 但是,如果我再次更改客户端A上的foo,并在BI上执行cat获取错误:cat:foo:No such file or directory 对B做一个ls解决这个问题, cat foo再次显示新的内容。 但是,如果我再次更改客户端A上的foo,客户端B上的猫将无法工作。 分析: 如果B上的程序首先调用“stat”,则一切正常。 但是如果像猫这样的程序直接使用系统调用打开它不会find文件! 使用tcpdump和wireshark,我可以看到Ubuntu 12.04使用正确的(更新后的)文件句柄在“PUTFH”下的NFS分区中调用,但是在14.04中,文件句柄是错误的(等同于在系统A上更改之前的旧文件句柄)。 现在非常有趣的部分:如果我在服务器站点上的nfs共享驻留在ext4文件系统上,并通过/ etc / exports共享,则nfs服务器将返回错误代码NFS4ERR_STALE。 客户端(B)会用正确的文件句柄做第二个请求,一切工作正常。 甚至在14.04。 如果服务器站点上的nfs共享驻留在ZFS文件系统(ZoL 0.6.4.1,CentOS 7和Ubuntu 14.04)上,并通过sharefs选项或/ etx / exports共享,则nfs服务器将回答错误代码NFS4ERR_NOENT。 客户端将失败。 问题:1.如何获得较新的客户端(14.04+),像在12.04上一样正确地更新文件句柄2.(或者)如何让服务器在ZFS文件系统上使用NFS4ERR_STALE进行回答? 或者,服务器应该如何按照规范来回答? 问候Joerg

我如何防止ntfs-3g使用饿死我的ZFS ARC的内存?

我有一台基于Debian GNU / Linux 7(wheezy)的运行OpenMediaVault 2.1.18(Stone刻录机)的HP Microserver。 前几天,我需要从一个USB驱动器复制大量的文件,用NTFS格式化。 我连接它,装上它,开始复制,然后完成。 一天之后,我发现它几乎没有复制任何东西,而且我的NAS性能也一塌糊涂。 调查发现,页面缓冲区和缓冲区caching现在占用了超过3/4的系统内存(一起使用的时间通常less于10%),ZFS ARC现在被挤压到剩余的内存中(小于正常大小的1/4 )。 当我意识到出了什么问题的时候,我停止了拷贝,卸载并拔掉了驱动器,很快caching恢复到了正常的大小,然后ARC开始恢复到正常的水平。 所以,如果将来需要做更多的直接复制,我该如何防止挂载ntfs驱动器,导致大量的内存消耗,使得我所需要的内存不足ZFS ARC? 注意:正如shodanshok所 build议的 ,我尝试运行echo 3 > /proc/sys/vm/drop_caches (根据man 5 proc “free pagecache,dentries and inodes”),但是这也冲刷了我的ARC(除了需要caching的内存L2ARC标题)。 因此,我的系统有很多可用的内存,但是由于事情只能在ARC或L2ARC中caching,所以我的系统花了很多时间来驱动硬盘来重新填充ARC,而不是一个理想的状态。 在这张图片中,你可以看到5号开始时的ZFS饥饿,当我开始我的NTFS拷贝时,在6号早期卸载NTFS驱动器时,事情恢复正常,最后ARC被清除(并重build)在7日下午使用drop_caches。

如何重用多个监狱中的文件系统子树?

我有一个FreeBSD 11主机,我想在其中设置多个监狱。 官方指南build议将/usr/bin复制到每个容器中。 我的监狱应该几乎完全一样,这对我来说似乎是浪费的。 如果我可以在所有的jail中重用文件系统的相同部分,就好像Linux的mount –bind -o ro <host /usr/bin> <jailed /usr/bin> 。 这有可能吗?

HDFS可以安装在ZFS或BTRFS硬盘上吗?

我是hadoop的新手,并对HDFS如何与ZFS或BTRFS协同工作感到困惑。 物理驱动器可以使用ZFS挂载,然后在ZFS之上安装HDFS吗? 还是可以直接安装HDFS?