Raid
什么是Raid?
Raid是廉價(jià)冗余磁盤陣列剿吻,簡稱磁盤陣列
Raid是一種把多塊獨(dú)立的物理磁盤按不同的技術(shù)組合起來形成的磁盤組窍箍,在邏輯上(做完Raid,裝完系統(tǒng)后) 看起來就是一塊大的磁盤丽旅,可以提供比單個(gè)物理磁盤更大的存儲(chǔ)容量或更高的儲(chǔ)存性能椰棘,同時(shí)又能提供不同級別數(shù)據(jù)冗余備份的一種技術(shù)
Raid的級別介紹
把多個(gè)物理磁盤通過不同技術(shù)方式組成磁盤陣列,這個(gè)不同的技術(shù)方式就被成為Raid級別
Raid級別一般有:Raid0榄笙、Raid1邪狞、Raid2、Raid3办斑、Raid4外恕、Raid5、Raid6乡翅、Raid7鳞疲、Raid10、Raid53
生產(chǎn)環(huán)境常用的Raid級別:Raid0蠕蚜、Raid1尚洽、Raid5、Raid10
Raid級別 | 關(guān)鍵優(yōu)點(diǎn) | 關(guān)鍵缺點(diǎn) | 實(shí)際應(yīng)用場景 |
---|---|---|---|
Raid0 | 讀寫速度快 | 沒有任何冗余 | MySQL Slave靶累,集群節(jié)點(diǎn)RS |
Raid1 | 100%冗余腺毫,鏡像 | 讀寫性能一般成本高 | 單獨(dú),數(shù)據(jù)重要挣柬,且不能宕機(jī)的業(yè)務(wù)潮酒。監(jiān)控 ,系統(tǒng)盤。 |
Raid5 | 具有一定的性能和冗余邪蛔,可以壞一塊盤急黎。讀性能不錯(cuò) | 寫入性能不高 | 一般業(yè)務(wù)都可以用 |
Raid10 | 讀寫性能很快,100%冗余 | 成本高 | 性能和冗余要求都很好的業(yè)務(wù)。數(shù)據(jù)庫主庫和存儲(chǔ)的主節(jié)點(diǎn) |
R級別 | 描述 | 速度* | 容錯(cuò)性能 |
---|---|---|---|
RAID0 | 磁盤分段 | 磁盤并行輸入/出 | 無 |
RAID1 | 磁盤鏡像 | 沒有提高 | 有(允許單個(gè)磁盤出錯(cuò)) |
RAID2 | 磁盤分段加海明碼糾錯(cuò) | 沒有提高 | 有(允許單個(gè)磁盤出錯(cuò)) |
RAID3 | 磁盤分段加專用奇偶校驗(yàn)盤 | 磁盤并行輸入/出 | 有(允許單個(gè)磁盤出錯(cuò)) |
RAID4 | 磁盤分段加專用奇偶校驗(yàn)盤需異步磁盤 | 磁盤并行輸入/出 | 有(允許單個(gè)磁盤出錯(cuò)) |
RAID5 | 磁盤分段加奇偶校驗(yàn)分布在各個(gè)磁盤 | 磁盤并行輸入/出比RAID0稍慢 | 有(允許單個(gè)磁盤出錯(cuò)) |
RAID10 | 速度快勃教、完全容錯(cuò) 成本高 | 速度快 | 有(允許50%個(gè)磁盤出錯(cuò)) |
冗余
冗余淤击,指重復(fù)配置系統(tǒng)的一些部件,當(dāng)系統(tǒng)發(fā)生故障時(shí)故源,冗余配置的部件介入并承擔(dān)故障部件的工作污抬,由此減少系統(tǒng)的故障時(shí)間 Redundant,自動(dòng)備援绳军,即當(dāng)某一設(shè)備發(fā)生損壞時(shí)印机,他可以自動(dòng)作為后備式設(shè)備代替設(shè)備
Raid分類
大并發(fā)需要高性能軟Riad性能差
Raid分為兩類
軟raid 系統(tǒng)層面實(shí)現(xiàn),軟件實(shí)現(xiàn)性能較差
硬raid 硬件層實(shí)現(xiàn)删铃,性能好
主板板載raid:功能弱 0 1
獨(dú)立raid卡:功能強(qiáng) 耳贬,0/1/5/10 (工作選擇)
邏輯卷和raid卡的區(qū)別
- LVM:靈活的管理磁盤,有一定冗余和性能猎唁,但很弱
- RAID:更側(cè)重性能和數(shù)據(jù)安全
LVM軟件實(shí)現(xiàn)的咒劲,性能太低。
高并發(fā)場景诫隅,性能降低5-10%
買服務(wù)器時(shí)插滿磁盤腐魂,分區(qū)規(guī)劃好,永遠(yuǎn)不需要LVM
我們?yōu)槭裁葱枰疟P陣列逐纬?
磁盤陣列可以把多個(gè)磁盤驅(qū)動(dòng)器通過不同的連接方式連接在一起協(xié)同工作蛔屹,大大提高讀取速度,同時(shí)把磁盤系統(tǒng)的可靠性提高到接近無措的境界豁生,時(shí)期可靠性極高兔毒。
用RAID最直接的好處:
- 提升數(shù)據(jù)安全性
- 提升數(shù)據(jù)讀寫性能
- 提供更大的單一邏輯磁盤數(shù)據(jù)容量存儲(chǔ)
Raid 0生產(chǎn)應(yīng)用場景:
- 負(fù)載均衡集群下面的多個(gè)相同RS節(jié)點(diǎn)服務(wù)器
- 分布式文件存儲(chǔ)下面的主節(jié)點(diǎn)或CHUNK SERVER
- MySQL主從復(fù)制的多個(gè)Slave服務(wù)器
- 對性能要求很高,對冗余要求很低的相關(guān)業(yè)務(wù)
以4塊盤做Raid 0
關(guān)注點(diǎn) | 描述 |
---|---|
容量 | 是四快盤擠在一起的容量甸箱,在raid級別中具備最高儲(chǔ)存性能育叁,原理是把現(xiàn)需的數(shù)據(jù)分散到多個(gè)磁盤上存取 |
性能 | 理論上磁盤讀寫速度比單盤提升四倍,磁盤越多倍數(shù)越高 |
冗余 | 無任何冗余芍殖,快一塊盤豪嗽,整個(gè)raid就不能用了 |
場合 | 適用于大規(guī)模并發(fā)讀寫,但對數(shù)據(jù)安全性能要求不高的情況豌骏。 |
特點(diǎn) | 速度快龟梦,無冗余,容量無損失 |
RAID 1級別詳解
RAID 1 又稱為鏡像窃躲,特德宗旨是最大限度的保證用戶數(shù)據(jù)的可用性和修復(fù)性.
關(guān)注點(diǎn) | 描述 |
---|---|
容量 | 損失50%的數(shù)據(jù)容量计贰。例如:兩塊1T盤,做raid之后,容量為1T |
性能 | MIRROR不能調(diào)高儲(chǔ)存性能蒂窒。 |
冗余 | 在所有raid級別中躁倒,raid 1提供最高的數(shù)據(jù)安全保障赎婚。冗余度100% |
場合 | 使用于重要數(shù)據(jù),如服務(wù)器系統(tǒng)分區(qū)和對性能要求很高的數(shù)據(jù)庫存儲(chǔ)等領(lǐng)域 |
特點(diǎn) | 100%冗余樱溉,容量損失一半,只能是兩塊盤纬凤。兩塊盤大小不一樣福贞,取最小盤容量 |
Raid 5描述
Raid 5是一中存儲(chǔ)性能、數(shù)據(jù)安全和存儲(chǔ)成本兼顧存儲(chǔ)解決方案
Raid 5 需要三塊以上的物理磁盤停士,可以提供熱備盤實(shí)現(xiàn)故障的恢復(fù)挖帘;采用奇偶校驗(yàn),可靠性強(qiáng)恋技,且只有同時(shí)損壞兩塊硬盤是數(shù)據(jù)才會(huì)完全損壞拇舀,只壞一塊盤是,系統(tǒng)會(huì)根據(jù)存儲(chǔ)的奇偶校驗(yàn)位重建輸數(shù)據(jù)蜻底,臨時(shí)提供服務(wù)骄崩;此時(shí)如果有熱備盤,系統(tǒng)還會(huì)自動(dòng)在熱備盤上重建故障磁盤上的數(shù)據(jù)薄辅;
Raid 5 可以理解為是Raid 0和Raid 1的折衷方案要拂。
raid5 關(guān)鍵是用了奇偶校驗(yàn)
關(guān)注點(diǎn) | 描述 |
---|---|
容量 | 只損是一塊盤容量 |
性能 | Raid5具備和Raid 0相近似的數(shù)據(jù)讀寫速度,只是多了一個(gè)奇偶校驗(yàn)信息站楚,寫入數(shù)據(jù)的速度較慢 |
冗余 | 可損失一塊盤脱惰。Raid 5數(shù)據(jù)安全保障程度比Raid1低,二磁盤空間利用率要比Raid高 |
場合 | Raid 5可以理解為是Raid 0 和Raid 1的折衷方案窿春。適用于性能和冗余都有一定要求拉一,又不是十分高的情況下。MySQL的主從庫都可以旧乞,存儲(chǔ)也可以蔚润。普通服務(wù)器為了減少成本,又保持一定的冗余和讀寫性能都可以做Raid 5 |
特點(diǎn) | 容量損失一塊盤良蛮,無論多少塊盤組合抽碌,寫數(shù)據(jù)通過奇偶教驗(yàn),是Raid 0 和Raid 1的折衷方案 |
對性能和安全要求高决瞳,追求速度不用raid5
Raid 5 優(yōu)缺點(diǎn)
優(yōu)點(diǎn) | 缺點(diǎn) |
---|---|
很高的讀取效率 | 硬盤的故障會(huì)對吞吐量造成中等影響 |
中等寫入效率 | 控制器的設(shè)計(jì)較為復(fù)雜 |
很低的ECC硬盤數(shù)量占用率 | 相對于RAID-1來說货徙,因硬盤故障而重新構(gòu)建RAID體系比較麻煩 |
良好的幾何數(shù)據(jù)傳輸率 | 個(gè)別數(shù)據(jù)塊的傳輸率相當(dāng)于單個(gè)硬盤相當(dāng) |
適用領(lǐng)域: 文件與應(yīng)用服務(wù)器 數(shù)據(jù)庫服務(wù)器 Web/E-Mail以及新聞服務(wù)器 Riad-5是適用于用于多領(lǐng)域的 |
Raid10(01)
Raid10和Raid01試講磁盤按照不同的方式進(jìn)行邏輯組合。
Raid10是先將四塊硬盤在縱向上分別兩兩做鏡像皮胡,鏡像后再在橫向上做條帶痴颊。簡而言之:Raid 10是先作鏡像后做條帶。這種情況如果只是壞掉其中一個(gè)硬盤屡贺,對Raid組影響不大蠢棱,只要不是同時(shí)壞掉其中的一個(gè)硬盤和他的鏡像盤锌杀,Raid組不會(huì)崩潰
Raid01 是先將四塊硬盤中橫向兩兩做條帶,然后再縱向上作鏡像泻仙。這種情況如果兩個(gè)條帶上的任意兩塊硬盤壞掉了糕再,則整個(gè)Raid組都將崩潰。不管發(fā)生介質(zhì)損壞的兩塊硬盤是否是鏡像盤玉转。
關(guān)注點(diǎn) | 描述 |
---|---|
容量 | 損失一半盤的容量 |
性能 | 大于1和5突想,小于0 |
冗余 | 可損失兩塊,大于5和0究抓,小于1 |
場合 | 高并發(fā)存儲(chǔ)數(shù)據(jù)庫系統(tǒng) |
磁盤分區(qū)
磁盤在linux里的命名
IDE /dev/hda hdb
SAS /dev/sda sdb
磁盤分區(qū)類型
主分區(qū)
主分區(qū)他是系統(tǒng)中必須要存在的分區(qū)猾担,系統(tǒng)盤選擇主分區(qū)安裝
主分區(qū)數(shù)字編號只能是1-4
主分區(qū)最多四個(gè),最少一個(gè)擴(kuò)展分區(qū)
擴(kuò)展分區(qū)相當(dāng)于一個(gè)獨(dú)立的磁盤
自己獨(dú)立的分區(qū)表
不能獨(dú)立存在刺下,既不能直接存放數(shù)據(jù)
必須在擴(kuò)展分區(qū)上建立邏輯分區(qū)绑嘹,才能存放數(shù)據(jù)。
擴(kuò)展分區(qū)會(huì)占用主分區(qū)的編號(主分區(qū)+擴(kuò)展分區(qū))小于等于4擴(kuò)展分區(qū)可以沒有橘茉,有只能存在一個(gè)邏輯分區(qū)
數(shù)字編號從5開始
邏輯分區(qū)存放與擴(kuò)展分區(qū)之上
可以存放任何普通數(shù)據(jù)
磁盤分區(qū)的工作原理
磁盤分區(qū)按柱面分區(qū)工腋。
磁盤分區(qū)登記地點(diǎn)叫做磁盤分區(qū)表
用來存放分區(qū)結(jié)果的信息
0磁道0磁頭1扇區(qū)占用1扇區(qū)的前446字節(jié)(存放系統(tǒng)引導(dǎo)信息的)后面的64字節(jié)(分區(qū)表),剩下2字節(jié)為結(jié)束標(biāo)志
磁盤分區(qū)表是有限的畅卓,64字節(jié) 一個(gè)分區(qū)固定占16字節(jié)夷蚊,只能分4個(gè)分區(qū)(主分區(qū)+拓展分區(qū))64/16=4
分區(qū)實(shí)戰(zhàn)
磁盤分區(qū)本質(zhì)就是改64字節(jié)的分區(qū)表
fdisk 更改那個(gè)64 字節(jié),修改MBR分區(qū)表 髓介,MBR格式
被修改的磁盤惕鼓,磁盤容量小于2T
磁盤分區(qū)其他命令parted gpt分區(qū)格式,既能修改小于2T也能修改大于2T
[root@oldboyedu ~]# fdisk /dev/sdb #fdisk 加磁盤路徑(需要分區(qū)的磁盤)
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x12967dd6.
Command (m for help):
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition #刪除所創(chuàng)建的分區(qū)
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu#幫助命令
n add a new partition #創(chuàng)建一個(gè)新的分區(qū)
o create a new empty DOS partition table
p print the partition table #打印分區(qū)表
q quit without saving changes #退出不保存
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit #保存退出
x extra functionality (experts only)
Command (m for help): n #創(chuàng)建一個(gè)新的分區(qū)
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p #選擇創(chuàng)建分區(qū)
Partition number (1-4, default 1): #選擇主分區(qū)號(主分區(qū)為1--4唐础,第一個(gè)默認(rèn)為1)
First sector (2048-2097151, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151): +150M #分區(qū)大小
Partition 1 of type Linux and of size 150 MiB is set
Command (m for help): n #繼續(xù)創(chuàng)建分區(qū)
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p #創(chuàng)建主分區(qū)
Partition number (2-4, default 2): #顯示還能創(chuàng)建2--4號的主分區(qū)
First sector (309248-2097151, default 309248): #開始的扇區(qū)數(shù)
Using default value 309248
Last sector, +sectors or +size{K,M,G} (309248-2097151, default 2097151): +150M #分區(qū)大小
Partition 2 of type Linux and of size 150 MiB is set
Command (m for help): N
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): P
Partition number (3,4, default 3):
First sector (616448-2097151, default 616448):
Using default value 616448
Last sector, +sectors or +size{K,M,G} (616448-2097151, default 2097151): +150M
Partition 3 of type Linux and of size 150 MiB is set
Command (m for help): n
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e): e
Selected partition 4
First sector (923648-2097151, default 923648):
Using default value 923648
Last sector, +sectors or +size{K,M,G} (923648-2097151, default 2097151):
Using default value 2097151
Partition 4 of type Extended and of size 573 MiB is set
Command (m for help): n
All primary partitions are in use
Adding logical partition 5
First sector (925696-2097151, default 925696):
Using default value 925696
Last sector, +sectors or +size{K,M,G} (925696-2097151, default 2097151): +150M
Partition 5 of type Linux and of size 150 MiB is set
Command (m for help): n
All primary partitions are in use
Adding logical partition 6
First sector (1234944-2097151, default 1234944):
Using default value 1234944
Last sector, +sectors or +size{K,M,G} (1234944-2097151, default 2097151): +150M
Partition 6 of type Linux and of size 150 MiB is set
Command (m for help): n
All primary partitions are in use
Adding logical partition 7
First sector (1544192-2097151, default 1544192):
Using default value 1544192
Last sector, +sectors or +size{K,M,G} (1544192-2097151, default 2097151): #磁盤剩余空間都給最后一個(gè)分區(qū)
Using default value 2097151
Partition 7 of type Linux and of size 270 MiB is set
Command (m for help): p #查看分區(qū)表
Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x12967dd6
Device Boot Start End Blocks Id System
/dev/sdb1 2048 309247 153600 83 Linux
/dev/sdb2 309248 616447 153600 83 Linux
/dev/sdb3 616448 923647 153600 83 Linux
/dev/sdb4 923648 2097151 586752 5 Extended
/dev/sdb5 925696 1232895 153600 83 Linux
/dev/sdb6 1234944 1542143 153600 83 Linux
/dev/sdb7 1544192 2097151 276480 83 Linux
Command (m for help): w #保存退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.