首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BTRFS文件系统配置

BTRFS文件系统配置
EN

Server Fault用户
提问于 2019-11-25 06:19:19
回答 1查看 524关注 0票数 1

我正在尝试使用以下磁盘安装Ubuntu服务器:

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

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

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

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

我还有两个8TB驱动器,/dev/sdb/dev/sdc,我想在BTRFS下作为RAID1数组操作它们。我将这些驱动器格式化如下(除另有说明外,所有以root形式列出的命令):

代码语言:javascript
复制
mkfs.btrfs -m raid1 -d raid1 /dev/sdb /dev/sdc

我已经安装了一个基本的Ubuntu系统,目前只安装了/dev/sda磁盘的分区等。

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

代码语言:javascript
复制
$ 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设备。

这个是可能的吗?如果是,在BTRFS配置、子卷、设备添加等方面,我需要做什么?

似乎我只能在挂载设备的子目录中创建子卷。我也不确定将RAID1数组添加到/dev/dm-1设备会带来什么后果。

谢谢你能提供的任何帮助。如果你需要更多的信息,就问吧!

(作为进一步的背景,我正在替换一个32位Ubuntu14.03服务器,它不能升级到最新的Ubuntu版本,因为有些软件需要64位操作。这个系统首先必须设置为64位Ubuntu14.03服务器,这样我就可以从旧服务器传输数据,然后执行必要的升级。因此,我仅限于Ubuntu14.03版本的btrfs-tools包。我正在利用这个机会转到BTRFS,作为一个试验性的旁听。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2019-11-25 14:10:28

好吧,我想我已经搞清楚了,虽然有点长.

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

所有命令都以root的形式输入,除非另有指示。

首先,需要挂载RAID1卷。

注意:当安装此卷时,可以指定属于该数组的任何一个磁盘。也就是说,最好在/etc/fstab中使用数组的UUID (为了简单起见,我们将在这里使用该设备)。

代码语言:javascript
复制
# mkdir /mnt/raid1
# mount -t btrfs /dev/sdb /mnt/raid1

接下来,我们需要为目录和挂载点创建子卷,稍后我们将为/opt/srv指定这些子卷:

代码语言:javascript
复制
# 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数组:

代码语言:javascript
复制
# umount /mnt/raid1

最后,需要编辑/etc/fstab来挂载我们刚刚创建的子卷。(我们不需要挂载RAID1根子卷。)在这样做时,使用UUID值(来自btrfs filesystem showblkid,它应该显示RAID1数组的相同值)和子卷ID(来自上面的btrfs subvolume list命令):

代码语言:javascript
复制
# 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数组),子卷挂载选项标识正在挂载的子卷。

为了确定,请检查文件内容是否正常:

代码语言:javascript
复制
# mount -a

如果没有报告错误,你就没事了。

我绝对不想做的一件事是将RAID1数组设备添加到根逻辑卷中。哈!

我会把这作为目前公认的答案,但如果你有更好的建议,我一定会考虑的!

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/993159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档