1、創建一個10G分區,并格式為ext4文件系統;
(1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;
第一步先在磁盤上創建分區:fdisk /dev/sdc
n –> e –> 5 –> default –> +10G –> w
第三步創建文件系統:mke2fs -t ext4 -b 2048 -m 2 -L MYDATA -o acl /dev/sdc5
(2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳;
mount -o noexec,atime /dev/sdc5 /data/mydata
2、創建一個大小為1G的swap分區,并創建好文件系統,并啟用之;
第一步先在磁盤上創建一個1G的swap分區:fdisk /dev/sdc6
n –> e –> 6 –> default –> +1G –> t –> 82 –>w
第二步內核加載:partx -a /dev/sdc執行兩遍
第三步創建swap文件系統:mkswap /dev/sdc6
第四步查看系統內存空間:free -h或是cat /proc/swaps
第五步開起swap交換分區:swap on /dev/sdc6 ;注:加 -a 表示定義在/etc/fstab/ 文件上的所有swap設備
第六步查看和關閉:free ; swapoff /dev/sdc6
3、寫一個腳本
(1)、獲取并列出當前系統上的所有磁盤設備;
(2)、顯示每個磁盤設備上每個分區相關的空間使用信息;
#!/bin/bash
fdisk -l | grep “^/dev/sd.*” | cut -d” ” -f 1
df -h | grep “/dev/sd.*”
4、總結RAID的各個級別及其組合方式和性能的不同;
獨立磁盤冗余陣列(RAID, Redundant Array of Independent Disks),舊稱廉價磁盤冗余
陣列(Redundant Array of Inexpensive Disks).RAID最初的基本思想是把多塊相對便宜的硬盤組織結合起來,成為硬盤陣列組,使組合成的這個陣列組的性能超過一塊價格昂貴、容量巨大的硬盤。但隨著RAID的發展,人們發現組成磁盤陣列事實上非常昂貴,于是折衷把“Inexpensive”改為“Independent”。
對于磁盤性能來說,增強性能意味著提高IO能力,即單位時間內的數據處理量更
大,說白了就是提高處理速度。對于數據可靠性來說,增強可靠性意味著提高容錯能力及磁盤冗余能力,這樣磁盤損壞了數據還能正常存儲。除此之外,RAID相比單塊磁盤還有增加磁盤容量、增強數據集成度的好處。
RAID提高IO能力是通過磁盤并行讀寫實現,而提高耐用性(增強數據可靠性)則
是通過磁盤冗余來實現。
總結來說,獨立磁盤冗余陣列(RAID, Redundant Array of Independent Disks)就是通過
把多塊磁盤組織起來,以實現增強磁盤讀/寫性能(即增大處理量)、增強容錯功能及磁盤冗余能力、增強數據集成度、增大容量的功能,這是相比于單塊磁盤而言的。操作系統將磁盤陣列邏輯為一個硬盤,因此對于用戶來說只需知道這是可存儲的一塊硬盤即可。
RAID各級別特性
磁盤陣列RAID有標準RAID及混合RAID。以下介紹不同版本的RAID.
標準RAID
RAID-0
RAID-0又稱條帶卷(strip),RAID-0是將多塊硬盤(兩塊以上)平行組織起來當做一塊硬盤使用,將數據用RAID的控制器分割成chunk后條帶化地存儲進多塊硬盤中。在所有級別的RAID中,RAID-0的讀、寫性能最佳。理論上,RAID-0的讀寫性能是單塊硬盤的N倍,事實上受到controller分割或組合chunk在時間上的限制。但是,RAID-0是用降低數據存儲可靠性換來存儲器讀、寫性能的提升,因此RAID-0既不具備容錯能力,也沒有冗余能力,只要有一塊硬盤損壞,則整個系統上的數據都會丟失。所以在對數據安全性要求不高的場合下才會使用RAID-0。
RAID-0特點總結如下:
(1)讀、寫性能提升
(2)可用空間:N*min(S1,S2,…)
(3)無容錯/無冗余能力
(4)最少磁盤數:2,2+
RAID-1
RAID-1又稱鏡像卷,即將多塊硬盤(兩塊以上)組織起來,當開始存儲數據時,將要存儲的數據復制成多份,分別存儲進不同的磁盤中。因此,雖然使用RAID-1在讀性能上有所提升,但寫性能略有下降。但使用RAID-1還有一個好處,那就是數據存儲的可靠性最佳,因為同樣的數據在硬盤級別上存儲了多份。
RAID-1特性總結如下:
(1) 讀性能提升、寫性能略有下降
(2) 可用空間:1*min(S1,S2,…)
(3) 有容錯、冗余能力:(N-1)塊硬盤
(4) 最少磁盤數:2, 2+
RAID-2
RAID-2是RAID-0的改良版,其以漢明碼(Hamming Code)的方式對數據進行線性編碼并存儲至不同硬盤中,并加入了錯誤修正碼(ECC,Error Correction Code),因此存儲的數據量比原始數據量大一些。RAID-2至少需要3塊硬盤,雖然提高了數據可靠性,但使讀、寫性能大大下降,而且RAID-2具體實施技術復雜,因此在商業環境中很少使用。
RAID-3
RAID-3采用Bit-interleaving(數據交錯存儲)技術,將數據進行編碼后,檢查這些數據的同位置比特,并將同位置的比特存儲分別獨立存儲在一塊硬盤上。缺點是讀取一小段數據可能需要對所有硬盤進行訪問,導致讀、寫性能大大下降,因此一般RAID-3適于需要讀取大量數據時使用。
RAID-4
RAID-4專門用一塊硬盤當做校驗盤,校驗盤上存儲的是校驗碼(可以是數據異或的結果)。RAID-4可以說是對RAID-1在存儲性能上的改進,但問題是每次訪問數據時都需要從校驗盤上取出對應的同比特數據進行核對,因此對校驗盤來說可能會造成系統IO性能瓶頸,而這一缺陷也限制了RAID-4的存儲性能。除此之外,RAID-4還有一個缺陷,那就是最多只能損壞一塊硬盤。當有一塊硬盤損壞時,工作狀態為降級模式。
RAID-4總結如下:
(1) 除校驗盤外,讀、寫性能提升
(2) 可用空間:(N-1)*min(S1,S2,…)
(3) 有容錯能力:1塊硬盤
(4) 最少磁盤數:3,3+
RAID-5
RAID-5采用了循環存儲校驗碼的機制,力求兼顧磁盤讀、寫性能及數據可靠性,可視為RAID-0和RAID-1的折衷方案或者是對RAID-4存儲性能這一問題的改進。
RAID-5校驗碼存放有左對稱和有對稱兩種布局,一般采用左對稱布局。RAID-5至少需要3塊磁盤,但RAID-5和RAID-4一樣,最多只允許1塊硬盤損壞,因此數據存儲的安全性依然不夠高,后來發展出了以下要介紹的RAID-6。另外,RAID-5和RAID-4相同,當有一塊硬盤損壞時,工作為降級模式。
RAID-5特性總結如下:
(1) 讀、寫性能提升
(2) 可用空間:(N-1)*min(S1,S2,…)
(3) 有容錯能力:1塊磁盤
(4) 最少磁盤數:3,3+
RAID-6
相對于RAID-5來講,RAID-6也采用了循環存儲校驗碼的機制,不同的是,RAID-6相當于使用兩塊校驗盤來存儲呢校驗碼,因此任意兩塊硬盤損壞不會影響數據的完整性,數據存儲的可靠性非常高。
(1) 讀、寫性能提升
(2) 可用空間:(N-2)*min(S1,S2,…)
(3) 有容錯能力:2塊硬盤
(4) 最少磁盤數:4, 4+
混合RAID
RAID-10
RAID-10先將多塊硬盤兩兩一組做成RAID-1(即鏡像卷),再把所有的RAID-1做成RAID-0(即條帶卷)。這種存儲方式比較可靠。
RAID-10特性總結如下:
(1) 讀、寫性能提升
(2) 可用空間:N*min(S1,S2,…)/2
(3) 有容錯能力:每組鏡像最多只能壞一塊
(4) 最少磁盤數:4, 4+
RAID-01
先把多塊硬盤分成兩組做成RAID-0(即條帶卷),再把這兩組做成RAID-1(即鏡像卷)。RAID-01只要有一個硬盤損壞,同組RAID-0的其他硬盤將停止工作,只剩下其他組的硬盤工作。如下圖所示,即使第一組RAID-0中的Disk0和第二組RAID-0的Disk3同時損壞,因為每組RAID-0的控制器分割成chunk的機制不同,所以同樣無法恢復數據,數據可靠性很低。
RAID-01特性總結如下:(m代表RAID-0的組數)
(1) 讀性能提升,寫性能略有下降
(2) 可用空間:N*min(S1,S2,…)/m
(3) 有容錯能力:最多只允許(m-1)組硬盤損壞
(4) 最少磁盤數:4, 4+
RAID-50
RAID-50是先把多塊硬盤做成RAID-5,再把各RAID-5組做成RAID-0。每組RAID-5至少需要3塊硬盤,因此構成多組RAID-5至少需要6塊硬盤。例如:有6塊硬盤,每3塊硬盤構成一個RAID-5組,再把兩組RAID-5組成RAID-0。
spacer.gif
RAID-60
RAID-60是先把硬盤做成RAID-6,再把各RAID-6組做成RAID-0。每組RAID-6至少需要4塊硬盤,因此構成多組RAID-6至少需要8塊硬盤。例如:有12塊硬盤,每4塊硬盤構成一個RAID-6組,再把兩組RAID-6組成RAID-0。
JBOD
JBOD(Just a Bunch Of Disks)只是將多塊硬盤的空間合并為一個大的連續邏輯的硬盤空間,其可用空間為組合成JBOD的各個硬盤空間之和。不具備容錯、冗余能力,數據可靠性和RAID-0相當。
RAID-7
RAID-7是Storage Computer Corporation的專利硬件產品名稱,并非公開的標準。RAID-7是RAID-3、RAID-4的強化版,存儲性能極為強大。
需要注意的是,RAID2、3、4較少實際應用,因為RAID5已經涵蓋了所需的功能,因此RAID2、3、4大多只在研究領域有實現,而實際應用上則以RAID5為主。
5、創建一個大小為10G的RAID1,要求有一個空閑盤,而且CHUNK大小為128k;
第一步創建2個10G的分區:fdisk /dev/sdc
n –> e –> 7 –> default –> +10G –> t –> 7 –> fd
n –> e –> 8 –> default –> +10G –> t –> 8 –> fd –> w
第二部內核加載分區:partx -a /dev/sdc 執行兩遍
第三部分查看RAID的詳細信息:mdadm -D
第四步創建RAID1:mdadm -C md0 -n 1 -x 1 -a yes -c 128 -l raid1 /dev/sdc7 /dev/sdc8
第五步創建文件系統:mke2fs -t ext4 /dev/md0
第六步掛載:mount /dev/md0 /md0
6、創建一個大小為4G的RAID5設備,chunk大小為256k,格式化ext4文件系統,要求可開機自動掛載至/backup目錄,而且不更新訪問時間戳,且支持acl功能;
第一步創建3個2G大小的分區:fdisk /dev/sdc
n –> e –> 9 –> default –> +2G –> t –> fd
n –> e –> 10 –> default –> +2G –> t –> fd
n –> e –> 11 –> default –> +2G –> t –> fd –> w
第二部內核加載分區:partx -a /dev/sdc 執行兩遍
第三步創建RAID5:mdadm -C md1 -n 3 -c 256 -a yes -l raid5 /dev/sdc{9,10,11}
第四步創建文件系統:mke2fs -t ext4 /dev/md1
第五步開機自動掛載:vi /etc/fstab
底行輸入:UUID=”UUID” /dev/backup ext4 acl,noatime 0 0
7、寫一個腳本
(1) 接受一個以上文件路徑作為參數;
(2) 顯示每個文件擁有的行數;
(3) 總結說明本次共為幾個文件統計了其行數;
#!/bin/bash
#
if [ $# -le 2 ] ;then
echo “Wrong is numher of parameter.”
exit 1
else
for i in $*;do
wc -l $i
done
fi
echo “Couts the number of rows for $# files.”
8、寫一個腳本
(1) 傳遞兩個以上字符串當作用戶名;
(2) 創建這些用戶;且密碼同用戶名;
(3) 總結說明共創建了幾個用戶;
#!/bin/bash
#
if [ $# -le 1 ];then
echo “Wrong is number of parameter.”
exit 1
else
for i in $*;do
if [[ “$i” < 2 ]];then
echo ” $i is at least two characters.”
exit 2
elif id $i &> /dev/null;then
echo “$i is exists.”
exit 3
else
useradd $i
echo “$i” | passwd –stdin $i &>/dev/null
fi
done
fi
echo “Add $# users.”
9、寫一個腳本,新建20個用戶,visitor1-visitor20;計算他們的ID之和;
#!/bin/bash
sum=0
for i in {1..20};do
if id version$i &> /dev/null;then
echo “version$i already exists, create terminated.”
exit 1
else
useradd version$i
fi
done
for j in $(cat /etc/passwd | grep “^version” | cut -d: -f 3);do
sum=$(($sum +$j))
done
echo $sum
原創文章,作者:N26-xiaocong,如若轉載,請注明出處:http://www.www58058.com/76202
對于raid相關的知識很多面試過程都會問到,尤其是他們之間的對比,希望能通過表格方式去看究竟差別在哪,而不僅僅是文字羅列。