我的目标是在Linux上find一个支持类似ZFS的轻量级快照和快照克隆的分布式文件系统。 这个StackOverflow的问题expression了我正在寻找的很好。 我试图弄清楚Lustre + ZFS是否是解决scheme。 如果我build立了一个ZFS支持的分布式Lustre文件系统,我能够将其快照,然后装载和克隆这些快照? 或者,ZFS快照function是否在单个OSS级别上运行,而不是在整个分布式文件系统上运行? 到目前为止,我的研究已经把我推向了Lustre + ZFS,这是一个很有希望的select,但是互联网上的共识似乎是Linux上的ZFS直到最近的0.6.1发行版都是beta。 目前的Lustre文档简要地提到ZFS作为Lustre的可选后端。 可能由于ZFS在Linux上最近的成熟,除了LLNL的Sequoia,我还没有发现任何有关Lustre + ZFS的Linux部署的报告,而且我还没有find与Sequoia有关的文档来回答我的问题。
更新:由于logging大小默认为128k,testing程序读取的数据量远大于8GB系统上的ARC,并且比16GB系统上的ARC稍大。 减lesslogging大小允许读取更less的数据,因此它适合于ARC。 我低估了正在阅读的数据的大小,logging的效果,因此得出了一些可怜的结论。 到目前为止,禁用预取在这种情况下似乎没有太大的区别,但是我打算尝试使用和不使用预取的所有logging选项。 这种负载类似于IMAP / Maildir场景,其中包含许多目录,许多文件以及可能从每个文件中读取的less量数据。 我已经使用zfsonlinuxtesting了FreeBSD 10和Fedora 19。 我testing了各种各样的Linux本地文件系统,如extX / xfs / jfs甚至btrfs。 在FreeBSD上,我也使用本地ufs文件系统进行了testing。 我的工作量只是使用amarok / winamp /等扫描一个大的音乐collections。 我的testing程序是amarok_collectionscanner,因为它可以轻松地从命令行运行。 模式总是一样的。 集合扫描程序的初始运行大约需要10分钟,具体取决于文件系统,但ZFS与非ZFS文件系统的运行方式相似 后续的扫描使用非zfs文件系统的速度非常快,通常在30秒左右。 ZFS在随后的运行中只做了一点改进。 从iostat上看,在非ZFS文件系统上初始运行后,操作系统不会触及磁盘。 全部在文件系统caching中。 为ZFS使用固态盘caching可以缩短时间,但从不会在30秒左右。 为什么ZFS不caching这个负载? 我探索的一种可能性是,ARC的大小被限制为小于非ZFS文件系统被允许用于高速caching的大小。 我在一台机器上再次testing了ARC的可用内存,而不是第一个testing系统上的全部可用内存,并且数字保持不变。 我希望find/创build一个复制这种负载的fio配方。 基本上它需要创build数以千计的小文件,扫描所有寻找文件的目录,打开每个文件并从每个文件中读取less量的数据。 这就像世界上最糟糕的数据库! 我可能会testingOpenIndiana,但我希望结果是一样的。 数据集是353GB和49,000个文件。 testing系统有8GB-16GB的RAM。 zpoolconfiguration几乎没什么区别,但我关心的testing总是只有一个整盘。 我使用了ST3500630AS和WDC WD20EZRX-00D8PB0等驱动器。 驱动器几乎没有区别。 RAM的数量或者CPU的速度几乎没有差别。 只有正在使用的文件系统改变了结果,这些差异是相当大的,正如我上面提到的。 我实际上有关于我试过的各种文件系统参数的数据点的山峰,这些是我检查的一些variables:mdadm raidconfiguration(0和1)zpoolconfiguration,镜像和条带zfs recordsize mdadm块大小文件系统块大小 在单个ST3500630AS驱动器上,我得到了以下文件系统的默认文件系统选项的这些数字。 这是在Fedora 19上,8GB的RAM,3.11.10-200内核,ZFS 0.6.2-1。 这些值以秒为单位。 后续扫描没有任何尝试清除caching运行。 ZFS: 900, […]
我有一台NAS(Synology DS214 with DSM 5.0),我没有创build和pipe理分区的可能性(也许我可以用一些我不想做的黑客)。 什么方法可以设置多个ZFS池,每个ZFS池只有一个分区(对于初学者 – 只是想使用重复数据删除)存在? 该设置应该与NAS,即通过networking(我通过NFS或CIF挂载图像)。 我的想法和相关的问题到目前为止: 在循环设备上挂载稀疏文件(直接指定稀疏文件,因为ZFS vdev不起作用,请参阅我可以select稀疏文件作为zfs池的vdev吗? ):分配的循环设备的名称/编号不是常数,不知道如何增加带有内核参数的数字循环设备会影响性能(必须有一个原因将其限制在默认值8,对吧?) 如果存储数据的设备仅用于以字节forms保存数据,而其他设备则由另一设备pipe理(如果不可能创build分区,则必需),则必须将所有数据ZFS系统或池需要在设备上运行(至less是池的名称和附加的vdevs列表),以使池在控制设备发生故障时能够存活。 这个ZFS相关的数据必须在外部进行备份。 如何告诉ZFS在哪里存储数据? 我想,挂载目录( /etc/zfs等)是比告诉ZFS在池创build时保存数据更糟糕的解决scheme。
在准备将zfs池移动到另一个服务器机箱时,我在多用户模式下做了一个“zfs导出”。 事后看来,我应该从救援盘上做到这一点。 导出后,失败了,我重新启动,并从来没有能够导入池。 所有的磁盘和池都处于在线状态。 这更像是一个zfs软件问题 – 可能是一个元数据问题。 有没有其他人看过这个之前或有没有人有任何build议,从可能损坏的池中恢复数据? 除了I / O错误之外,我还无法得到任何有关导致I / O错误的良好反馈。 我已经尝试使用桁架与导入来看看发生了什么事情。 桁架输出: http : //pastebin.com/DSDpuR1i gpart list输出: http : //pastebin.com/Wxgr2PMx 我使用FreeBSD9进行设置,我相信这是zfs v28。 作为一个便笺我知道我应该有备份。 我之所以没有更多关于金钱的事情。 计划是将这个池移到一个新的norco机箱中,并添加相同数量的磁盘以供另一个池镜像。 root@nas01:~ # zpool import pool: rpool id: 15664112288097167104 state: ONLINE status: The pool was last accessed by another system. action: The pool can be imported using its […]
这似乎是一个容易的问题,但我一直在四处寻找,无法find一个方法来做到这一点。 部分与find答案的问题似乎是谷歌上的大多数文章引用可启动池。 我试图恢复像这样的快照: zfs send -R backupset/storage07@repl-marker-20150210 | zfs receive -Fev storage07 不幸的是,它总是试图将数据集还原为storage07的子数据库,如storage07 / storage07。 我想将快照恢复到池的根目录,而不是池中的子数据集。 我以为-e -d修饰符应该在path与无path之间切换,但它们似乎产生相同的结果。
我在Linux上运行带有ZFS的Ubuntu 14.04.2。 当我的Asus M5A78L-M / USB3上的SATA端口用完时,我购买了一块戴尔PERC H200卡,并将其交叉转换为LSI 9211-8i P19 IT模式固件,透明地传输驱动器。 尽pipe存在一个缺点,但它的工作原理类似于具有SMART命令的mpt2sas驱动程序等等: 经过一段时间hdparm -y / dev / sdx后,我自动旋转我的池驱动器。 在我拿到H200卡之前,我所有的驱动器都连接到主板上,当我closures系统时,系统立即closures,不用转动驱动器。 现在,连接到H200的所有驱动器都会首先启动,系统不会closures,直到所有驱动器都被启动。 所以我的问题是: 在closures系统之前,我怎样才能防止Ubuntu挂起我的磁盘,连接到H200? 可能是发送到驱动器的备用/关机命令,导致H200唤醒驱动器。
我一直负责为数据logging系统构build一个大的zpool。 在Linux(0.6.4.2)上使用ZFS,在CentOS 6.5上使用。 硬件规格: DL380 Gen8 80 GB RAM 2个HP HBA H221 2台HP D6000,每台配有70x 3TB SAS磁盘 有一些特殊情况: 镜像是不存在的,我们将缺乏存储。 所需的总需要的结核病数量非常多。 添加D6000设备不是一个选项。 数据中心中将有2个zpool,使用应用程序级冗余。 因此,整个池的损失是有问题的,但不是关键的。 所有的数据将被备份到磁带。 使用HP加速卡现在不是一个选项(太昂贵了) 由于受到2.6.32内核的限制,使用PCIe NVMe卡不是一种select。 性能要求: 写作performance并不重要,基本上有一个稳定的写作stream程,大概是4 MB /秒。 阅读的performance是有用的,但没有真正的热点数据集,非常随机的数据可以或将被阅读,根据需要。 索引是非常重要的。 一旦zpool完全加载,将会有大约150万个文件,得到这些文件的列表应该尽可能快。 ARC在这里帮助很多RAM吗? 我的计划是如下构buildzpool: RaidZ2 10个磁盘的14个VDEV。 压缩 自动更换 一段时间了 我真的没有什么好的SLOG和L2ARC的select。 使用惠普固态硬盘不是一个真正的select,因为他们需要在硬件Raid0上作为单一设备运行。 从我在这个网站上看到的,这是在惹麻烦。 我的问题: 更多的内存将是很好,当然,但我真的需要它吗? 一旦zpool加载了95%以上的数据,我是否应该期待重大的问题。 如上所述,较低的性能是可以的,性能要求相当低。 推荐任何其他vdev布局,而不会降低可用的存储空间。 我应该考虑什么特殊的ZFS调整? 我至less考虑增加存储在ARC中的元数据的份额。 为了帮助索引速度,有意义吗? 我是否应该期望使用L2ARC和SLOG设备的问题? 任何其他技巧,使上述工作,非常感谢!
我一直在试图找出一种方法来复制从主数据中心到远程服务器的zfs-auto-snap创build的快照,这两个快照都运行带有最新ZFS-FUSE的Ubuntu Server 14。 这是我的本地ZFS: NAME USED AVAIL REFER MOUNTPOINT zfs_pool01/data 4.47T 2.98T 2.40T /mnt/data 我运行这个命令来复制可用的最早的每月zfs-auto-snap快照: zfs send -v -R zfs_pool01/data@zfs-auto-snap_monthly-2015-04-01-0652 | ssh 192.168.254.5 zfs recv -F zfs_pool01/Van_backup/data 而且(几天之后)这里是远程ZFS中zfs list的结果: NAME USED AVAIL REFER MOUNTPOINT zfs_pool01/Van_backup/data 1.10T 9.73T 1.10T /mnt/backup/Van/data 令我费解的是,我实际上看不到/mnt/backup/Van/data或zfs_pool01/任何/mnt/backup/Van/data ,也不能在任何隐藏的.zfs目录下看到任何数据。 du -hs *显示512 Van ,基本上是0个字节。 但是…然而,在某处存在〜1.1TB的数据呢? 如果我找不到第一个,我很怀疑尝试另一个zfs增量发送。 问候, 埃里克 PS:我应该注意到在远程服务器的zfs_pool01/Van_backup/data上禁用了zfs-auto-snap 。 不需要创build不需要的快照。
在Solaris和变体上,它会创build当前/ filesystem的zfs副本,并在那里安装新的内核。 重新启动时,您将获得新的/ 。 在我的情况下,我有一个/scripts目录,所以如果我应该回到以前的内核,那么我的/scripts也会回滚,这对我来说应该独立于内核。 题 我怎样才能避免从内核升级完成到主机重启之后对文件系统所做的更改呢? 有没有我没有意识到的一个过程,因为即使在内核升级之后你很快就可以重新启动,日志条目很容易被创build出来,这是你永远不会看到的。
我目前正在构build一个基于Linux Mint的媒体服务器。 操作系统安装在小型SSD上,目的是将媒体文件存储在两个硬盘(2TB + 4TB)上。 为此,我从两个硬盘创build了一个名为zstorage的zfs池。 然后我添加了一个名为电影的数据集。 我已经将挂载点设置为/ home / gs / movies。 来自zfs列表的输出似乎证实这是创build的。 gs@Odin:~ > sudo zfs list NAME USED AVAIL REFER MOUNTPOINT zstorage 118K 5.35T 21K /zstorage zstorage/movies 21K 5.35T 21K /home/gs/movies 但是,当我尝试将文件复制到位置/ home / gs / movies时,SSD上的空间正在消耗,文件没有存储在已创buildzfs池和数据集的HDD上。 任何人都可以提供一些这方面的信息吗? 从df输出 gs@Odin:~ > df -h Filesystem Size Used Avail Use% Mounted on udev 3.9G […]