Articles of btrfs

使用FUSE挂载压缩文件系统

我想将计算机上的某些文件夹移动到压缩读/写图像,这样我就可以在我的机器上占用较less的磁盘空间(这些文件夹包含一些Mercurial和Git存储库)。 因为我不是每天都在使用这些库,所以我更喜欢使用FUSE手动安装它们。 到目前为止,我已经find了如何创build一个空的btrfs文件系统: dd if=/dev/zero of=/tmp/empty bs=1 count=0 seek=100M mkfs.btrfs /tmp/empty 我如何安装这个文件夹? 当我input$ fusermount /tmp/empty我得到fusermount: old style mounting not supported 。

比使用btrfs RAID10预期更多的可用空间?

我刚刚在我的Ubuntu 14.04中创build了一个btrfs RAID10arrays,使用命令: mkfs.btrfs -d raid10 -m raid10 /dev/sda /dev/sdb /dev/sdc /dev/sdd 我的4个硬盘都是2TB硬盘。 在RAID10下,我预计总共可以看到约3.6TB的可用空间。 然而,出于某种原因,我看到总共可用7.3TB(请参阅下面的/dev/sda ): Filesystem Size Used Avail Use% Mounted on /dev/sde1 42G 1.7G 38G 5% / none 4.0K 0 4.0K 0% /sys/fs/cgroup udev 7.8G 12K 7.8G 1% /dev tmpfs 1.6G 1.2M 1.6G 1% /run none 5.0M 0 5.0M 0% /run/lock none 7.9G […]

如何提高增量备份性能?

我正在使用传统的rsync + cp -al方法来创build我们的服务器树的增量/快照备份。 备份将通过四个eSATA连接(每个连接四个磁盘)连接到一对连接备份机器(一台配备16 GB RAM的Sandy Bridge机器,运行CentOS 5.5)的八个磁盘塔上。 每个磁盘是一个普通的2TB磁盘,所以我们有32TB的磁盘空间连接到备份机器。 我们用这个备份了大约20TB的数据。 问题是每个日常备份需要24小时以上,真正的时间杀手不是实际的rsync,而是在备份机器上本地执行树的cp -al所需的时间。 为了制作树的影子副本需要花费超过12个小时,并且据我所知,性能积压是在磁盘上(顶部显示的是使用大量RAM但不是很多CPU的cp,而且大部分是不可中断的睡眠状态) 我们将服务器数据分成四个主要卷(和一些小的卷),并且每个备份都并行运行(在cron中有一些偏移量以便首先完成某些磁盘的cp)。 备份驱动器上有两个卷,每个都有16 TB的条带化LVM卷。 所以显然我需要提高性能,因为它是不可用的。 第一个问题是:当CentOS 6发布时,支持btrfs,将会使用btrfs创build子卷的快照大大提高了性能? 第二个是:有没有办法在CentOS 5或6中支持ext3或其他东西来“鼓励”它将目录/ inode放在一个卷的一部分中(这可能是SSD上的一部分,通过LVM)和在另一个文件? 这大概会解决问题,但我不知道如何提示ext3。

在多设备.vs上的Btrfs上使用NFS。 Glusterfs分布式卷?

我考虑一个电子邮件存储。 这个存储系统运行在我自己的私有云(已经复制)上,然后我不在乎复制。 我正在考虑2个选项: 1 – 我将创build几个“磁盘”(云上的卷),并在多磁盘上创build一个Btrfs文件系统; 当文件系统满了,我会创build更多的“磁盘”,并将其添加到btrfs文件系统: btrfs device add /dev/vdX /mnt btrfs filesystem balance /mnt 这个挂载点(/ mnt)将通过NFS公开,我的Dovecot服务器将挂载这个导出,并在其上存储电子邮件。 2-我将创build一些“磁盘”(云上的卷),并创build一个GlusterFS分布式卷横跨这些磁盘; 当文件系统满了,我会创build更多的“磁盘”,并添加新的“磁盘”(S)GlusterFS分布式卷,重新平衡它。 我的鸽舍会使用glusterfs-client挂载这个卷,并在其上存储邮件。 (重复:我不需要复制,因为我的“磁盘”,在私有云上的卷,复制发) 你认为哪个选项更好: 性能? (许多小的读/写I / O) 稳定? 灵活?

BTRFS:“设备上没有剩余空间”,但是btrfs命令不是这样说的

我正在使用BTRFS从2个磁盘创build一个RAID0卷。 两者均位于每个可用30 GB空间的AWS EC2实例上。 我用来创build文件系统的命令是: btrfs -d raid0 -L MYLABEL /dev/xvdf /dev/xvdg 。 现在Ubuntu告诉我磁盘空间已满,就像BTRFS: root@host:/var/docker-apps/prometheus# btrfs balance start -dconvert=raid0 . ERROR: error during balancing '.': No space left on device There may be more info in syslog – try dmesg | tail root@host:/var/docker-apps/prometheus# 有趣的是,当我看到btrfs filesystem usage我得到这个: root@host:/var/docker-apps/prometheus# btrfs filesystem usage . Overall: Device size: 60.00GiB […]

PostgreSQL 9.6比BTRFS。 好或坏主意?

我只准备一台VM机器(在Proxmox上运行),通过Ubuntu 16.04 LTS运行postgresql 9.6。 这个postgres将被用来处理一个小公司的Jira / FisheEye / Confluence数据库。 通常我们同时是几个用户,所以我们不需要调整它以获得极高的性能/可伸缩性。 那么就是我们在服务器上使用BTRFS来帮助我们处理在必要时为虚拟机增加额外空间的问题,再加上我们启用了lzo压缩。 另外,我们使用btrok来处理BTRFS子卷到另一台机器的备份。 我怀疑如果可能是一个好主意,使用BTRFS来处理postgresql数据库文件,因为我们将非常有用的情况下,我们需要扩大虚拟硬盘空间,但我读了关于postgresql性能超过BTRFS(特别是如果datacow没有被禁用。 任何人都有这种情况的经验?

btrfs:我可以用数据创build一个btrfs文件系统作为jbod和元数据镜像

我正在尝试构build一个服务器,它将成为我的NAS /媒体服务器以及XBMC前端。 我正在计划使用Ubuntu与Btrfs的NAS部分。 目前的设置包括操作系统等的1TB硬盘和两个2TB硬盘的数据。 我计划将2TB硬盘用作JBOD btrfs系统,在这个系统中,我可以根据需要添加硬盘,基本上可以在线扩展文件系统。 他们安装文件系统进行testing的方式是在安装操作系统时,只需要连接一个硬盘,并在其上挂载btrfs作为/ data。 稍后在此文件系统中添加另一个hdd。 当第二块磁盘添加了作为RAID 0的btrfs,元数据为RAID 1.但是,这提出了一个问题:即使其中一个磁盘出现故障,我也将丢失所有数据(主要是介质)。 另外大多数情况下,服务器在没有进行任何磁盘访问的情况下运行,也就是说可以closures硬盘,当访问请求出现在当前的RAID 0设置中时,两个磁盘都将启动。 在我pipe理JBOD的情况下,只有具有该文件的磁盘需要被启动。 这应该有希望减less每个磁盘的MTBF。 那么, 有没有一种方法可以让btrfs设置为元数据镜像,但是数据保持在JBODarrays中 ? 另一个问题是,我了解到JBOD中的全驱故障会丢失驱动器上的数据,但在所有驱动器上都有metadeta镜像,这是否有助于更正文件系统中的错误(如出现错误?) btrfs能够做到这一点。

我可以挂载一个活的文件系统的BTRFS快照吗?

我想知道是否可以为分析目的安装同一个BTRFS文件系统的一个或多个快照。

无法删除btrfs快照

我有一个系统创build定期btrfs快照并删除旧的。 今天,我开始接受警告,说系统无法删除一些旧的快照。 这是我得到的输出: root@machine:/path# btrfs sub del 2014-10-26–01-50-01-@ten_minutely Delete subvolume '/path/2014-10-26–01-50-01-@ten_minutely' ERROR: cannot delete '/path/2014-10-26–01-50-01-@ten_minutely' 我可以创build和删除新的快照,而不会产生任何问题,只是今天创build的其中一些快照会出现此问题。 权限看起来不错。 系统日志显示没有关系。 我检查了btrfs filesystem df ,还有可用于文件系统的空间 – 用于元数据和数据。 一条删除命令显示: #… ioctl(3, 0x5000940f, 0xffa1d1f0) = -1 ENOTEMPTY (Directory not empty) close(3) = 0 #… 我可以采取哪些进一步措施来调查原因?

如果下层也磨砂,我是否需要btrfs磨砂?

我有一个由NetApp NFS文件pipe理器上的虚拟磁盘映像组成的多TB btrfs 。 数据在NetApp级别是冗余的,所以btrfs是RAID-0。 除了提供冗余外,NetApp还会自行清理数据完整性。 由于在btrfs级别没有冗余,校验和失败不能自动纠正,但我可以从备份中恢复损坏的文件。 是否有价值的做我自己的洗刷,或者我应该依靠较低层,并保存I / O?