BTRFS 文件系统配置

BTRFS 文件系统配置

我正在尝试设置一个Ubuntu具有以下磁盘的服务器:

/dev/sda是一个 2TB 的磁盘,将承载大部分操作系统。它目前的分区如下:

  • /dev/sda1:EFI Boot 分区(488.3GB),挂载为/boot/efi
  • /dev/sda2:LVM 分区,添加到mymachine_vgLVM 卷组。

卷组mymachine_vg仅包含一个分区(/dev/sda2),具有两个逻辑卷:

  • mymachine_swap:一个122.1GB的交换分区(/dev/dm-0)。
  • mymachine_root:一个 1.4TB BTRFS 分区(/dev/dm-1),挂载为/

我还有两个 8TB 硬盘,/dev/sdb/dev/sdc想在北卡罗莱纳州root。我按如下方式格式化这些驱动器(除非另有说明,否则列出的所有命令均以运行方式列出):

mkfs.btrfs -m raid1 -d raid1 /dev/sdb /dev/sdc

我已经安装了一个底座Ubuntu系统,并且/dev/sda当前只挂载了磁盘的分区等。

如果我运行btrfs filesystem show,我会得到以下输出:

$ btrfs filesystem show
Label: none  uuid: 357d0492-9802-48f4-9656-4011c32d9e62
        Total devices 1 FS bytes used 1.80GiB
        devid    1 size 1.22TiB used 4.04GiB path /dev/dm-1

Label: none  uuid: 0ed53e28-cdee-40e3-9316-69446f34e6af
        Total devices 2 FS bytes used 640.00KiB
        devid    1 size 7.28TiB used 2.03GiB path /dev/sdb
        devid    2 size 7.28TiB used 2.01GiB path /dev/sdc

 Btrfs v3.12

理想情况下,我会喜欢要实现的是使用 RAID1 阵列来存储/opt&/srv目录;大概是作为 BTRFS子卷. 所有其他目录都属于根逻辑卷/dev/dm-1设备。

这可能吗?如果可以,我需要做什么北卡罗莱纳州配置、子卷、设备添加等?

看来我只能在已安装设备的子目录中创建子卷。我也不确定将 RAID1 阵列添加到/dev/dm-1设备会有什么后果。

感谢您提供的任何帮助。如果您需要更多信息,请直接询问!

(作为进一步的背景介绍,我正在替换32 位 Ubuntu 14.03无法升级到较新版本的服务器Ubuntu版本,因为一些软件需要 64 位操作。此系统必须首先设置为64 位 Ubuntu 14.03服务器,以便我可以从旧服务器传输数据,然后执行必要的升级。因此,我只能使用Ubuntu 14.03版本btrfs-tools。我借此机会切换到北卡罗莱纳州作为实验性的补充。)

答案1

好的,我想我已经明白了,尽管有点冗长......

如果有人可以简化以下内容,请告诉我!

root除非另有说明,所有命令均以 形式输入。

首先,需要挂载 RAID1 卷。

笔记:安装此卷时,可以指定属于阵列的任一磁盘。也就是说,最好使用阵列的 UUID /etc/fstab(为简单起见,我们在此使用设备)。

# mkdir /mnt/raid1
# mount -t btrfs /dev/sdb /mnt/raid1

接下来,我们需要为稍后要指定的目录和挂载点创建子卷,在本例中为/opt/srv

# btrfs subvolume create /mnt/raid1/opt
# btrfs subvolume create /mnt/raid1/srv
# btrfs subvolume list /mnt/raid1 -a -p
ID 258 gen 12 parent 5 top level 5 path opt
ID 259 gen 13 parent 5 top level 5 path srv

记下每个子卷的 ID 号,因为我们稍后会需要它们...

下一步是卸载 RAID1 阵列:

# umount /mnt/raid1

最后,需要编辑/etc/fstab以挂载我们刚刚创建的子卷。(我们不需要挂载 RAID1 根子卷。)执行此操作时,使用 UUID 值(来自btrfs filesystem showblkid,它们应该显示与 RAID1 阵列相同的值)和子卷 ID(来自上述btrfs subvolume list命令):

# Original /etc/fstab contents, with the following appended:

# Mount opt subvolume of BTRFS RAID1 array as /opt
UUID=0ed53e28-cdee-40e3-9316-69446f34e6af       /opt    btrfs   defaults,subvolid=258   0       2
# Mount srv subvolume of BTRFS RAID1 array as /srv
UUID=0ed53e28-cdee-40e3-9316-69446f34e6af       /srv    btrfs   defaults,subvolid=259   0       2

请注意,两个挂载点都使用相同的 UUID(BTRFS 中 RAID1 阵列的 UUID),其中 subvolid 挂载选项标识正在挂载的子卷。

为了确保万无一失,请检查文件内容是否正常:

# mount -a

如果没有报告错误,那就很好。

我绝对不想做的一件事就是将 RAID1 阵列设备添加到根逻辑卷。哎呀!

我现在将其标记为已接受的答案,但如果您有更好的建议,我一定会考虑的!

相关内容