我尝试通过遵循btrfs UseCases指令在“降级模式”下创build一个btrfs RAID-1文件系统,但却遇到了一个致命的断言错误。 为什么这是失败的,是否有任何解决方法? 我遵循的指示是: https://btrfs.wiki.kernel.org/index.php/UseCases#How_can_I_create_a_RAID-1_filesystem_in_.22degraded_mode.22.3F mkfs.btrfs和btrfs filesystem show命令的输出是: # mkfs.btrfs -m raid1 -d raid1 /dev/sdd1 /dev/loop1 WARNING! – Btrfs Btrfs v0.19 IS EXPERIMENTAL WARNING! – see http://btrfs.wiki.kernel.org before using failed to read /dev/sr0 adding device /dev/loop1 id 2 mkfs.btrfs: volumes.c:802: btrfs_alloc_chunk: Assertion `!(ret)' failed. zsh: abort (core dumped) mkfs.btrfs -m raid1 -d raid1 /dev/sdd1 […]
公司如何在非常紧张的预算下pipe理大型文件服务器(例如17TB)及其相关备份? 在单个虚拟磁盘上使用ZFS(或BTRFS)是否可以进行写入时复制function以消除对fsck的需求? (即不为其RAID,快照等function) 具体情况: 我们需要退役一个古老的有问题的存储系统,它为NFS提供虚拟存储服务,并且仍然是我们的主要文件服务器。 我现在有了一个新的基于40TB iSCSI FreeNAS的存储系统,并且已经将旧存储中的所有虚拟机迁移到了新的虚拟机,但是17TB的SMB / CIFS和AFP共享文件依然存在。 通过rsync完成备份需要很长的时间来扫描17 TB,所以我们分成了两个卷: 对于未修改为一年的文件,在只读“归档”卷上为13 TB。 要进行备份,我们只需使用rsync进行现场和非现场复制 – 无需每日备份版本。 4 TB活动可写存储。 每天使用rsync进行备份,并使用硬链接在当天创build文件服务器状态的“快照”/版本,以便我们可以恢复覆盖的文件。 当需要修改时,IT人员将文件从存档移到现场,但这些请求现在每天多次,不再可接受。 原计划: 创build一个虚拟的Linux文件服务器。 在我们新的40TB存储系统上创build2个虚拟磁盘。 (13 TB存档+ 4 TB可写直播) 使用ext4文件系统格式化磁盘 使用带有挂载选项的UnionFS向用户呈现上述文件系统的单一统一视图,所有写入操作都将转至4TB可写入系统。 原计划的问题: 我们超出了rsync的基于文件的性质作为备份工具,例如重命名1TB顶级文件夹导致整个1TB文件夹的完整新副本。 这只会为基于块的备份添加几个KB。 实施UnionFS只是给整个系统增加了一层复杂性,我真的很想避免。 由于rsync必须重新扫描整个文件服务器来比较已更改的文件,即使只更改了一些文件,也需要很长时间才能完成备份。 它要求我们进行连续存档,以保持可写容量足够小,备份一夜之间完成。 备选计划1:备份的一个大容量和ZFS快照 上面创build计划的Linux文件服务器,但有一个大的卷,而不是两个,消除了对于联盟的需要 要备份这个非常大的服务器,这将花费rsync太长时间,而是使用ZFS快照,并使用“zfs send”来复制异地。 替代计划1的问题: 在17TB ext4文件系统上的fsck需要几天的时间! 想象一下,周一上午的事件需要重新启动,并在启动时强制fsck,或者更糟糕的是,文件系统损坏! 备选scheme2:Linux服务器上的ZFS / BTRFS文件系统 按照备选计划1,但使用写时复制文件系统(如ZFS或BTRFS)而不是ext4,因为这些文件系统不需要fsck。 替代计划2的问题/顾虑: ZFS和BTRFS都需要直接访问原始磁盘来实现自己的RAID,因此通常不会在虚拟磁盘上使用。 这将如何在单个虚拟磁盘上工作? 备选scheme3:FreeNAS直接作为文件服务器 而不是有一个单独的虚拟文件服务器,直接从FreeNAS共享文件 替代计划3的问题: 我们需要安装各种软件包和自定义的perl […]
我们正在使用ZFS在FreeNAS 9.2上存储文件。 我非常喜欢ZFS提出的数据完整性声明,在过去的服务器上使用ext3,XFS和ReiserFS在没有任何处理(停电等)的情况下随机丢失了数据。 当服务器需要重新启动时,这种情况非常罕见,但却是灾难性的,fsck被踢了进来,发现了很多错误。 我们也使用这台相同的NAS作为XenServer虚拟机的共享存储目标。 起初,我正在考虑让我们的虚拟机支持ZFS是多么的好,但是现在我第二次猜测完整性就是真正的失败certificate。 如果虚拟机的虚拟磁盘只是一个包含自己的文件系统的大文件(假设默认值为ext4),那么是什么防止虚拟磁盘在虚拟磁盘中被破坏呢? 也许networking电缆出现故障,iSCSI不知道它收到了一些坏字节存储(弹性地在ZFS中)? 我猜测在虚拟机和“信任”文件系统无法检测到的共享存储之间可能会出现其他可能的错误。 唯一的解决scheme是在虚拟机中使用错误更正文件系统,例如ZFS或btrfs?
有没有办法来禁用文件系统的mtime? 有一个Filesystem independend noatime选项,但没有“nomtime”。 另外在文件系统ext4和/或btrfs的特定文档,我找不到这个。 这是否存在?
目前我有一个像这样的结构的btrfs挂载点:# /mountpoint/month/day/hourAs24/ 每个叶子目录包含5,000到20,000个小文件。 在那里我保存了两个月的文件。 我每天用这个命令删除60天以前的目录 rm -R /mountpoint/month/day/ 该命令需要很长时间才能运行,并且在命令运行时服务器上的负载非常高。 每天在/mountpoint/month/下创buildbtrfs子卷是否会更好,然后在一个命令中清除子卷? 有没有其他快速和轻量级的解决scheme来摆脱一个命令下的一个btrfs目录下的文件? 编辑:澄清的情况。 在结构中,文件夹month , day和hourAs24是由当前date时间的对应值replace的variables。 解决scheme后编辑:在我的testing机器上顺利运行。 以下所有的作品都与安装的挂载点一起使用! 首先我为每个月创build正常的目录 mkdir /mountpoint/month 然后我创buildbtrfs子卷每月的每一天 btrfs subvolume create /mountpoint/month/day 然后我用一天的每个小时创build正常的目录 mkdir /mountpoint/month/day/hourAs24 60天后,我可以轻松清除当天的目录 btrfs subvolume delete /mountpoint/month/day (现在我必须等待60天才能看到生产服务器上的性能)
我想build立一个RAID1 / BTRFS / Luks设置。 我到目前为止发现的是: 可以在dm_crypt磁盘encryption子系统和Linux统一密钥设置(LUKS)层之上创buildencryption的Btrfs文件系统,该层支持各种encryption标准。 但是,这种方法会禁用在原始块设备上使用Btrfs的某些function和优点,例如自动固态磁盘支持和检测。 实施此解决scheme的最佳方法是什么? /dev/sda1 < 500 Gb /dev/sdb1 < 500 Gb /dev/md0 < RAID1 stripe < Luks < BTRFS < snapshots 这样的设置工作? 我看不到另一种方法,而不会丢失BTRFS-es快照function。 我可以设置raid没有mdadm与btrfs像: mkfs.btrfs -m raid1 -d raid1 /dev/sda /dev/sdb 但后来我得到了正确的顶部,我只能放弃encryption图像。 即使图像内的1位更改也会影响btrfs的快照(也就是说它会复制整个图像文件)。
Btrfs仍然处于沉重的发展阶段,仍然被Chris Mason认为是“不稳定的”,许多重要的特性还在增加,但数据丢失的可怕警告是灾难早已消失了,它已经成为许多发行版的默认文件系统,并且有几个分销商已经为了他们的目的宣布它是“稳定的”。 虽然有一些风险确实存在,但是磁盘存储中固有的风险也有所缓解,例如btrfs已经被certificate可以检测和纠正数据损坏问题,即使是高端RAID卡也会漏掉。 因此,您可以预料,即使在开发状态下,Btrfs也会比传统的“愚蠢”文件系统(如ext4)更安全,因为数据保存function将超过任何由错误引发的数据的风险腐败。 那么这点在哪里? 我们已经通过了吗? 或者在我们信任之前应该修复Btrfs中的一些已知错误? 或者,也许你只是等待其他人先信任它?
有没有一个命令获取btrfs子卷的磁盘大小? 文件系统是用-o compressed ,子卷包含很多压缩得很好的文件。 我可以在根文件夹中使用du ,但是我只能得到未压缩大小的总和,与df like命令相比也相对较慢。 (注意:这个问题不是关于这个子卷中包含的唯一数据的大小,以及它以COW方式从其他快照中获得的大小。)
我正在使用一个相当vanilla Ubuntu 10.04服务器安装,我正在试验BTRFS。 我如何创build一个BTRFS RAID1挂载? 我有两个(2)1Gig驱动器,我popup在服务器中,并运行以下命令后,似乎我有一个2千兆分区,而不是我所期望的1千兆。 $ sudo mkfs.btrfs -m raid1 -d raid1 /dev/sdb /dev/sdc WARNING! – Btrfs Btrfs v0.19 IS EXPERIMENTAL WARNING! – see http://btrfs.wiki.kernel.org before using failed to open /dev/btrfs-control skipping device registration adding device /dev/sdc id 2 failed to open /dev/btrfs-control skipping device registration fs created label (null) on /dev/sdb nodesize 4096 […]
DevOps同事build议我们开始将生产环境转换为使用btrfs。 我们主要使用ext4文件系统,尽pipe一些使用ZFS的低使用率服务器(在Linux上)。 作为决策者之一,作为一个负责我们整体环境的人,我对基于Web上制作网站上的btrfs的评论和文章数量感到犹豫不决。 为了反驳这种说法,Oracle已经发布了支持btrfs的Enterprise Linux,SLES 12( https://www.suse.com/releasenotes/x86_64/SUSE-SLES/12/ )也指出它将使用btrfs,并且有证据像Facebook这样的公司也在受控的生产环境中使用它。 关于为什么朝着这个方向前进(采用btrfs)将是一件好事,我总体上同意他们,但是,我想要谨慎,做尽职调查,并获得更多的操作上的熟悉和在进一步扩大规模之前,在“小生产”或登台环境中login小时。 是否有任何工具可以帮助我构build案例 – 如在压力testing之后进行数据完整性检查或者其他方面的工作? 除了没有看到像这样的语句:“问:btrfs是稳定的吗?简单的回答:不,它仍然被认为是实验性的。 在btrfs维基上我还能做些什么来获得更暖和的模糊?