Java写入磁盘阵列_月光软件站 - 编程文档 - Java - 利用Linux创建磁盘阵列
磁盤陣列配置文件為/etc/raidtab
raiddev /dev/md0 //指定磁盤陣列的設備名稱
raid-level linear //指定采用的是Linear模式
nr-raid-disks 2 //此陣列由2個硬盤組成
chunk-size 32 //數據寫入時,每個寫入區塊的大小
persistent-superblock 1 //設置是否寫入磁盤的superblock
device /dev/hdb1 //按實際情況,指定第1個硬盤分區名稱
raid-disk 0 //設置上述分區是此陣列所使用的第1 //個硬盤(編號由"0"開始)
device /dev/hdc1 //按實際情況,指定第2個硬盤分區名稱
raid-disk 1 //設置上述分區是此陣列所使用的第1 //個硬盤(編號由"0"開始)
創建好配置文件后,執行以下命令
#mkraid /dev/md0
執行完以個步驟,已經創建好磁盤陣列,然后啟動,系統會自動啟動此陣列.接下來,就可以如同一般硬盤分區一樣,格式化并掛載此陣列.
#mke2fs -j /dev/md0 //格式化此硬盤分區
#mount -t ext3 /dev/md0 /mnt/raid
強行初始化磁盤陣列
#mkraid -really-force /dev/md0
掛載完成后,就可以像平常目錄一樣,訪問這個利用磁盤陣列建設好的目錄.當然也可以修改/etc/fstab配置文件,使系統每次啟動都自動掛載此磁盤陣列.
除了mke2fs命令以外,相關命令還有raidstop(需先卸載已經掛載的目錄)及raidstart.還可以查看/proc/mdstat陣列的狀態記錄文件.
創建RAID-5磁盤陣列
raiddev /dev/md0 //指定磁盤陣列的設備名稱
raid-level 5 //指定采用的是Linear模式
nr-raid-disks 3 //此陣列由2個硬盤組成
nr-spare-disks 1 //此陣列的備用硬盤數目
chunk-size 32 //數據寫入時,每個寫入區塊的大小
persistent-superblock 1 //設置是否寫入磁盤的superblock
parity-algorithm left-symmetric //指定哪種算法計算同位校驗碼
device /dev/hdb1 //按實際情況,指定第1個硬盤分區名稱
raid-disk 0 //設置上述分區是此陣列所使用的第1 //個硬盤(編號由"0"開始)
device /dev/hdc1 //按實際情況,指定第2個硬盤分區名稱
raid-disk 1 //設置上述分區是此陣列所使用的第1 //個硬盤(編號由"0"開始)
device /dev/hdd1
raid-disk 2
device /dev/hda6 //備用硬盤的分區名稱
spare-disk 0 //指定備用硬盤是此陣列所使用的第1位備用硬盤(編號從“0”開始)
1、 容錯能力測試
關機,將hdc硬盤連線斷開,重新啟動,這時仍然可以啟用RAID-5陣列,且一切正常。查看/proc/mdstat狀態記錄文件,便可以發現只啟用的2個硬盤。
如果兩個以上硬盤出現故障,可就無法啟動陣列了,數據也無法恢復。
2、 支持備用硬盤
修改配置文件,依次執行raidstop及mkraid命令,停止執行中的陣列,并重新初始化陣列。當初始化時,系統會在后臺同步所有硬盤的數據,此時不要重新啟動。設置好備用硬盤后,如果其中之一的硬盤發生故障,系統就會自動啟用備用硬盤,并利用他正常運行的數據,重建此備用硬盤數據,以確保數據安全。
3、 空間利用率分析
此方式會使用一個硬盤的容量來存儲同位校驗碼,因此數據浪費率少于Linear及RAID-0。在不使用備用硬盤的情況下,如果RAID-5陣列是由N臺硬盤所組成,且每臺硬盤的容量為S,則此陣列的容量為(N-1)xS
4、 讀寫性能分析
此方式由于讀寫數據時是將一個文件夾切割成小區塊,由于可同步從N-1臺硬盤讀寫數據,因此理想上存取速率可變成N-1倍。但實際上,由于必須耗費系統資源在計算同位校驗碼上,因此不會達到這么高的傳輸效率。
總結
以上是生活随笔為你收集整理的Java写入磁盘阵列_月光软件站 - 编程文档 - Java - 利用Linux创建磁盘阵列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Thinking in C++遇到的函数
- 下一篇: java简述垃圾回收原理及算法_Java