用 Banana Pi 自製 NAS:建立 RAID 與讓 Linux 核心讀取兩顆以上的硬碟

banana pi nas raid linux

 

 

很久很久以前,流浪貓曾買過 Banana Pi 和 SATA Multiplier Port Card 來自製 NAS 區域網路儲存裝置與 BT、騾子 (eMule) 專用下載機。不過後來因為工作繁忙,只能放在旁邊生灰塵。

 

最近受朋友委託,希望我幫他弄個便宜可靠的家庭儲存裝置。後來想想,與其買台功能處處受限、價格不匪的套裝 NAS,不如把手邊的電子零件湊一湊賣給有需要的人。因此這篇算是彙整過去筆記的筆記,以及補充以前沒寫的部份。

 

 

讓 Banana Pi 的 Linux 核心讀取兩顆以上的硬碟

新版的香蕉派可能沒這個問題,但舊版 Banana Pi 所採用的預裝作業系統核心無法讀取兩顆以上的硬碟,即便用上了 SATA Multiplier Port Card 也一樣。

 

對於這個問題,我們可以參考這位高手所提出的解決方式。以 root 使用者的身份執行以下命令:習習翠維尼

 

檢視 Linux 核心是否支援 sunxi pmp

zgrep PMP /proc/config.gz

 

如果看到以下回應就沒問題

CONFIG_SATA_PMP=y

 

編輯 boot.cmd

nano /boot/boot.cmd

 

搜尋 setenv bootargs 這個段落,並在引號內、該行末端加入以下指令:

ahci_sunxi.enable_pmp=1

 

於 /boot 資料夾內執行以下命令:

mkimage -C none -A arm -T script -d boot.cmd boot.scr

 

之後它會依據 boot.cmd 的內容產生新的 boot.scr,並依此更新系統。重新啟動後,將硬碟全插上,輸入以下指令來驗證是否有效:

 

blkid

 

如果沒問題,畫面中就會顯示其他硬碟的名稱了。當然,你也可以用 fdisk -l 來列出所有硬碟裝置。

 

 

用 mdadm 建立 RAID 磁碟陣列

它是 Linux 系統下的 RAID 管理軟體,屬於 software RAID 的範疇。而建立 RAID 之前,必須確定硬碟有一個以上的磁碟分割,也就是說不能用 /dev/sda 整顆下去組。

 

更新軟體列表與系統 (非必須)
apt-get update
apt-get upgrade

安裝 mdadm
apt install mdadm

 

 

驗證硬碟的裝置名稱

fdisk -l

硬碟一號機
/dev/sda

硬碟二號機
/dev/sdc

 

 

用 fdisk -l 進行磁碟分割 

在 Linux 上進行磁碟分割的方式很簡單,就是請大家的好朋友 fdisk 來助陣。

fdisk /dev/sda

p: 列出目前分割表狀態
d: 刪除分割表
n: 建立分割表
w: 寫入

partprobe: 重新載入裝置

/dev/sda:
	/dev/sda1 磁碟分割
/dev/sdc:
	/dev/sdc1 磁碟分割

 

請 mdadm 建立 RAID 磁碟陣列 

由於我們的目的不是備份或存檔,而是純粹體驗 RAID 融合多顆硬碟之速度與空間所帶來的快感。因此這邊流浪貓選擇使用 RAID0,也就是容量最大、速度最快,但完全沒有任何容錯與備份保障,只要一顆硬碟壞掉,所有資料就報銷的陣列類型。

 

mdadm --create /dev/md0 --level=raid0 --raid-devices=2 /dev/sda1 /dev/sdc1

--create:磁碟陣列分割區名稱
--level:RAID 類型
--raid-devices:裝置數量,後方輸入裝置名稱 /dev/sda1 /dev/sdc1

 

 

驗證 RAID 磁碟狀態

mdadm --detail /dev/md0
cat /proc/mdstat

 

注意:進行各種硬碟操作之前,請先用 df -h 和 fdisk -l 指令驗證目標硬碟的名稱,避免造成不可挽回的後果。

 

 

將 RAID 磁碟分割和格式化

硬碟在實際啟用之前,都必須建立分割表與格式化。

RAID 磁碟分割:
fdisk /dev/md0

/dev/md0:
	/dev/md0p1 

RAID 格式化:
mkfs.ext4 /dev/md0p1

 

 

 

掛載 RAID 磁碟 d(´∀`)b

mount /dev/md0p1 /mnt/r1

列出系統中所有儲存裝置
fdisk -l 

列出目前掛載狀態
df -l 

 

 

其他指令

硬碟 RAID 測速
hdparm -t /dev/md0p1

檔案傳輸,顯示傳輸進度
rsync --progress file.dat /mnt/r1

 

 

 

 

延伸閱讀

在 OpenMediaVault 上安裝 Deluge 的步驟

OpenMediaVault - 用 Samba 分享 NAS 中的資料與權限設定

於 Debian 的 TTY 界面上閱讀、輸入中文和顯示圖片

桌上型電腦 電源供應器 (Power) 的開機、啟動方式

用 Banana Pi 過生活 (1)

停止運作的 Bananian Linux

bananian_linux

NAS - Wiki

香蕉派官網

鳥哥的私房菜 - 關於 RAID

 

 

 

留言

這個網誌中的熱門文章

寶鐘瑪琳中之人前世照片、年齡分析