為私有雲建立raid磁碟
Last updated
Last updated
要作為正式用途,例如家裡老舊電腦用來作家中儲存雲,我們需要利用先前介紹的資料映射方法,將上傳的資料存於外部目錄,與容器本身分離,避免勿刪容器導致所有資料不見
讓nextcloud的docker容器成為執行環境,所有資料則儲存於外部raid模式的硬碟,這樣,就可以建構簡易的家庭或學校的儲存雲
製作raid1的磁碟
當我們將ubuntu系統與docker安裝於一個系統跌後,我們可以使用兩顆空硬碟,並把他們做成raid1格式,然後作為nexttcloud資料存放之處,可有效保護資料安全
我們可以先關閉VM,然後在上面建立兩顆空磁碟做為模擬使用
重新啟動ubuntu
sudo fdisk -l
Disk /dev/sdb: 10 GiB, 10737418240 bytes, 20971520 sectors Disk /dev/sdc: 10 GiB, 10737418240 bytes, 20971520 sectors
兩顆空磁碟,分別為sdb sdc
製作raid1
sudo fdisk /dev/sdb disk table複製
# metadata 鏡像,資料也鏡像 sudo mkfs.btrfs -m raid1 -d raid1 /dev/sdb1 /dev/sdc1 -L bt0
sudo btrfs fi show Label: 'bt0' uuid: 994bc666-5d3a-45f9-99e4-ef9e64931966 Total devices 2 FS bytes used 186.21MiB devid 1 size 10.00GiB used 2.01GiB path /dev/sdb1 devid 2 size 10.00GiB used 2.01GiB path /dev/sdc1
測試btrfs raid1鏡像功能
掛載其中一個 device 就可以了:
sudo mkdir /mnt/raid sudo mount /dev/sdb1 /mnt/raid
cd /mnt/raid
產生多個檔案 test1 test2 ......
sudo touch test{1..100}
測試作為raid1的另一顆磁碟sdc1是否有相同的檔案
sudo mkdir /mnt/temp
sudo mount /dev/sdc1 /mnt/temp
cd /mnt/temp
ls後你可以看到相同的檔案產生
設定開機自動掛載
sudo vi /etc/fstab
加入這行設定
UUID=994bc666-5d3a-45f9-99e4-ef9e64931966 /mnt/raid btrfs defaults 0 2
擴充:後來多一顆硬碟
sudo fdisk -l
失效回充:忽然硬碟壞掉
假設今天sdb壞了硬碟都讀不到,假設原sdc1硬碟損毀 btrfs fi show 中顯示 *** Some devices missing mount -t btrfs -o degraded /dev/sdb1 /root/temp #把sdb1掛在/mnt下 btrfs device add /dev/sdc1 /root/temp #將新的sdc1加入 btrfs device delete missing /root/temp #移除消失的device 或 btrfs device delete 1 /root/temp #1是missing的deviceid sudo btrfs balance start /root/temp #平衡硬碟間的資料
修復完成,重新開機