Ubuntu

BTRFS 文件系統配置

  • November 25, 2019

我正在嘗試使用以下磁碟設置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我想在BTRFS/dev/sdc下作為 RAID1 陣列執行。我將這些驅動器格式化如下(除非另有說明,否則所有列為 run as 的命令):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設備。

這可能嗎?如果是這樣,我需要在BTRFS配置、子卷、設備添加等方面做什麼?

看來我只能在已安裝設備的子目錄中創建子卷。我也不確定將 RAID1 陣列添加到/dev/dm-1設備的後果。

感謝您提供的任何幫助。如果您需要更多資訊,請詢問!

(作為進一步的背景,我正在更換一個32 位 Ubuntu 14.03伺服器,該伺服器無法升級到更新的Ubuntu版本,因為某些軟體需要 64 位操作。該系統最初必須設置為64-位Ubuntu 14.03伺服器,以便我可以從舊伺服器傳輸數據,然後執行必要的升級。因此,我僅限於Ubuntu 14.03版本的btrfs-tools軟體包。我藉此機會切換到BTRFS作為除了實驗。)

好的,我想我已經弄清楚了,雖然它有點囉嗦……

如果有人可以簡化以下內容,請告訴我!

所有命令都輸入為root,除非另有說明。

首先,需要掛載 RAID1 卷。

注意:安裝此卷時,可以指定屬於陣列的磁碟。也就是說,最好使用數組的 UUID /etc/fstab(為簡單起見,我們將在此處使用設備)。

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

接下來,我們需要為稍後要指定的目錄和掛載點創建子卷,在本例中為/optand /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 陣列設備添加到根邏輯卷。嗬!

我暫時將其標記為已接受的答案,但如果您有更好的建議,我一定會考慮!

引用自:https://serverfault.com/questions/993159