问题标签 [btrfs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
344 浏览

linux - Python:如何等到磁盘活动消退?

Hegle Jensens 编写了一个很棒的 SnapBtr 脚本,该脚本使用智能算法创建基于快照的备份,当可用空间变得稀缺时,该算法会选择删除哪些旧备份。

不幸的是,BTRFS 文件系统有一个特点,即在执行任何删除命令后,它不会立即释放磁盘空间。相反,它只是安排删除每个节点。释放磁盘空间的实际过程发生在后台,只有在完成之后,我们才知道有多少可用空间。

这就是为什么我想改进这个脚本,所以在删除备用子卷后,它会等到没有硬盘驱动器活动才能获得实际的可用磁盘空间统计信息。

问题:知道周围有这么多 Python 库,你知道任何会返回的东西,我可以用它来获得硬盘驱动器活动饱和度吗?

如果这有帮助,我已经制作了一个 Bash 脚本wait-for-disk-idle.sh,它依赖于iostat磁盘活动信息。但我猜想为如此简单的事情调用外部 Bash 进程是非常低效且容易出错的(如果iostat没有安装呢?):

0 投票
1 回答
2528 浏览

linux - 具有多个设备的 btrfs raid1

我有 6 台设备:4TB、3TB、2TB、2TB、1.5TB、1TB(/dev/sda 到 /dev/sdf)。

第一个问题:

使用 RAID-1,我将拥有:

  • 2TB 镜像到 2TB
  • 1TB 镜像在 0.5@4TB + 0.5@3TB
  • 1.5TB 镜像在 1.25@4TB + 0.25@3TB
  • 其余 2.25 的 3TB 镜像在其余的 2.25TB 的 4TB 中。

在这种情况下,我的总大小将是 (4 + 3 + 2 + 2 + 1.5 + 1) = 13.5/2 = 6.75TB

$ mkfs.btrfs --data raid1 --metadata raid1 /dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf为我提供大约 6.75TB 吗?如果是,我可以承受丢失多少磁盘(以及哪些?)?

第二个问题:

例如,使用 RAID-1,我可以承受丢失三个磁盘:

  • 一个 2TB 磁盘,
  • 1TB 磁盘和
  • 1.5TB磁盘,

不丢失数据。

如何在使用 btrfs 丢失相同的磁盘时拥有同样的自由?

谢谢!

0 投票
1 回答
682 浏览

c - c 中是否有用于创建、删除或列出 btrfs 子卷的 BTRFS 库接口?

当我们运行下面的命令时,我想要一个方便的 c 中的 API 来获取给定 btrfs 分区中的子卷列表。

btrfs 子卷列表 btrfs/subvol/path

0 投票
3 回答
3296 浏览

c - 如何拍摄 btrfs subvol 的递归快照?

假设名为“child-subvol”的 btrfs 子卷位于另一个子卷中,例如“root-subvol”,如果我们拍摄“root-subvol”的快照,那么“child-subvol”也应该被拍摄快照。

由于 btrfs 文件系统中还没有递归快照支持,如何实现呢?

0 投票
1 回答
205 浏览

docker - Docker:在共享卷之上分层

我想在容器中使用共享卷,但共享卷中数据的更新无法转到主机上的底层目录,并且当容器消失时应该丢弃这些更新。

例如:

  • 使用一个文件 /var/data/random 创建共享目录 /var/data

    mkdir /var/数据;dd if=/dev/urandom bs=1M count=100 of=/var/data/random

  • 使用此目录作为共享卷启动容器

    docker run -v /var/data:/data -t -i --name deb debian /bin/sh

  • 在容器内修改文件

    dd if=/dev/zero bs=4k count=1 of=/data/random conv=notrunc

这是我想要发生的事情:

1)在容器内 /var/data/random 应该看起来像 4K 的零,后跟随机数据

2) 在容器外 /var/data/random 将保持不变

将容器安装为只读并不能解决该选项。复制数据并使其成为 docker 映像的一部分并不是解决方案。

我想使用 docker 用于容器根文件系统的相同分层来完成这项工作。

谢谢!

0 投票
1 回答
667 浏览

docker - Fedora docker.io 似乎不支持 btrfs

我在 /var/lib/docker 上安装了一个 btrfs 文件系统,并将“-s btrfs”添加到 /etc/sysconfig/docker。每当我尝试启动 docker 时,日志都会产生以下消息:

不支持驱动程序 [8d0e189f] -job initserver() = ERR (1)

任何有在 rhel/centos/fedora 系统上使用 btrfs 和 docker 经验的人。此外,Docker 是使用 epel docker-io.rpm 安装的。

docker-io-1.0.0-6.el6.x86_64

0 投票
0 回答
230 浏览

go - 不能从另一个程序调用 btrfs 发送

我在 btrfs 中调用发送命令时遇到问题。以下是症状:

使用 sudo 调用它可以:

不使用 sudo 调用它会失败:

我试图从另一个程序中调用它,奇怪的是它给了我一个不同的错误。从程序内部调用(在 go-lang 中使用 exec)它会给出以下错误:

我已经在有和没有 sudo 的程序中尝试过它,它似乎有相同的结果。请注意,这是在 docker 内部运行的。

0 投票
2 回答
3431 浏览

bash - 如何测试位置是否是 btrfs 子卷?

在 bash 脚本中,我如何优雅地检查特定位置是否是 btrfs 子卷?

我不想知道给定位置是否btrfs 文件系统(或子卷)中。我想知道给定位置是否

理想情况下,解决方案可以用 bash 函数编写,因此我可以编写:

一个“优雅”的解决方案将是可读的、代码少、资源消耗少。

0 投票
1 回答
1244 浏览

docker - 使用 Docker Vs Vanilla LXC 的优缺点是什么?

我主要是一个 LXC 人,用 BTRFS 运行 Vanilla LXC,想知道用 Docker 替换它的优点和缺点是什么(我知道 Docker 具有版本控制、共享容器等功能)?

是否易于部署应用程序与性能?BTRFS 与 Dockers AUFS 相比如何?如果有人能分享有关文件系统/IO 性能或基准的内容,我会很高兴。

谢谢。

0 投票
1 回答
577 浏览

linux - EXT4 是否已经过时?

我刚刚下载了 OpenSuse 13.2,现在,它提供了两个不同的文件系统选项ext4,但我看到人们在争论问题btrfsxfs

那么,如果ext4已经过时,那么哪一个最适合生产呢?(从网络服务器提供静态文件)?