BTRFS 文件系統配置
我正在嘗試使用以下磁碟設置Ubuntu伺服器:
/dev/sda
是一個 2TB 的磁碟,它將承載大部分作業系統。目前分區如下:
/dev/sda1
: EFI Boot 分區 (488.3GB),掛載為/boot/efi
/dev/sda2
: LVM 分區,添加到mymachine_vg
LVM 卷組。卷組
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
接下來,我們需要為稍後要指定的目錄和掛載點創建子卷,在本例中為
/opt
and/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 show
或blkid
,它應該顯示與 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 陣列設備添加到根邏輯卷。嗬!
我暫時將其標記為已接受的答案,但如果您有更好的建議,我一定會考慮!