1 磁盤的內部結構
2 磁盤的接口類型
IDE、SATA、SCSI、FC、SAS(SCSI的新一代技術)
企業生產環境主流磁盤的相關信息對比
普及程度:SAS>SATA>SSD
單位容量對比性能和價格:SSD>SAS>SATA(一塊SSD和一塊SATA)
單位價格購買磁盤容量:SATA>SAS>SSD
3 磁盤內部相關名詞
磁盤的磁頭(盤面個數)
磁盤的盤面,盤面號又叫磁頭號
磁盤的磁道
磁盤的柱面 柱面是所有盤面相同半徑的不同磁道的集合,柱面數=盤面的磁道數
磁盤的扇區,每個扇區大小是512字節,每個扇區的大小都是512個字節,一個扇區主要有兩部分內容:存儲數據地點的標識符和存儲數據的數據段
磁道柱面扇區總括
1、一塊磁盤有2-14個盤片,每個盤片有兩個面,每個面對應一個讀寫磁頭,用磁頭號來區分盤面,即盤面數就是磁頭數,盤片數*2=磁頭數(盤面數)
2、不同盤面的磁道被劃分爲多個扇形區域,每個區域就是一個扇區
3、同一個盤面,以盤片中心爲圓心,每個不同半徑的圓形軌跡就是一個磁道
4、不同盤面相同半徑的磁道組成一個圓柱面就是柱面
5、一個柱麪包含多個磁道,一個磁道包含多個扇區
6、數據信息記錄可以表示爲:某磁頭,某磁道(柱面),某扇區
4 磁盤容量的計算算法
磁盤容量計算方法
方法1:512B*扇區數=每個磁道的大小 *磁道數=每個盤面的大小 *磁頭數(盤面個數)=磁盤容量
方法2:柱面數(磁道數)*柱面大小(磁道大小*磁頭數)=磁盤容量
[root@nfs-server ~]# fdisk –l Disk /dev/sdb: 1073 MB, 1073741824 bytes 255 heads, 63 sectors/track, 130 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/sdb1 1 131 1048575+ 83 Linux Partition 1 has different physical/logical beginnings (non-Linux?): phys=(0, 0, 1) logical=(0, 0, 2) Partition 1 has different physical/logical endings: phys=(1023, 254, 63) logical=(130, 138, 8) [root@nfs-server ~]# echo "(63*512*255*130)/1000/1000"|bc 1069 [root@nfs-server ~]# echo "scale=2;(63*512*255*130)/1000/1000"|bc 1069.28 《======== 用scale來保留小數
機械磁盤讀寫磁盤數據的原理小結:
磁盤是按照柱面爲單位讀寫數據的
不同磁頭間切換是電子切換,而尋道是機械的切換
5 磁盤分區
5.1 主引導扇區
16字節分區表內容
字節數 | 說明 |
1Bytes | State :分區狀態,0=未激活,0x80=激活 |
1Bytes | StartHead :分區起始磁頭號 |
2Bytes | StartSC :分區起始扇區和柱面號。低字節的低6位爲扇區號,高2位爲柱面號的第9,10位;高字節爲柱面號的低8位 |
1Bytes | Type :分區類型,如0x0B=FAT32,0x83=linux,00表示未用 |
1Bytes | EndHead :分區結束磁頭號 |
2Bytes | EndSC :分區結束扇區和柱面號,定義同前 |
4Bytes | Relative :線性尋址方式下分區相對扇區地址 |
4Bytes | Sectors :分區大小(總扇區數) |
硬盤的0磁頭0磁道1扇區,是硬盤的一個非常重要的位置,在這個扇區中存放硬盤的主引導記錄MBR和硬盤的分區表DPT
MBR備份:dd if=/dev/sda of=mbr.bin bs=512 count=1
MBR恢復:dd if=mbr.bin of =/dev/sda bs=512 count=1
od –xa mar.bin 可以讀取MBR信息
5.2 磁盤分區的重點
1、磁盤分區的實質就是針對0磁頭0磁道1扇區的前446字節後面接下來的64bytes的分區表進行設置,即主要是劃分起始以及結束磁頭號,及扇區號和柱面號。因此,理論上,調整分區大小,不會刪除分區內的數據。
2、分區工具有fdisk(適合小於2T的磁盤分區),parted(適合大於2T的磁盤分區,可以對小於2T的磁盤分區),fdisk首選,只有大於2T時纔去選parted
3、一塊磁盤的分區表僅有64bytes大小,每個分區表要佔用16個字節,因此一塊磁盤僅支持四個分區表信息,即主分區+擴展分區的總量不超過4個
4、磁盤分區是按照柱面來劃分的
5、擴展分區不能直接使用的,還需要在擴展分區的基礎上創建邏輯分區
6、擴展分區有自己的分區表,因此,擴展分區下面的邏輯分區可以有多個
5.3 磁盤分區注意事項要點
1、任意多個主分區,但要求1≤主分區數量≤4
2、擴展分區可以和主分區組合,2≤(主分區+擴展分區)數量≤4
3、擴展分區最多只能有一個
如果分成四個磁盤分區的話,那麼最多就只有以下兩種
P + P + P + P
P + P+ P + E
特別說明:由於MBR及磁盤分區表大小的限制,如果對磁盤分配了4P或3P+E後,即使磁盤還有剩餘未分的空間,那麼這部分空間也無法分區使用了。因此在做分4個分區的時候,在最後一個分區要將所有的剩餘空間都分配給這個分區
4、分區數字編號1~4留給主分區和擴展分區使用,邏輯分區只能從5開始
5、主分區和邏輯分區在一般的數據存儲使用上沒有區別(對於大多數的數據存儲),在安裝操作系統時第一個分區要選主分區
5.4 磁盤分區實戰
fdisk分區
fdisk -cu /dev/sdb -c 從DOS模式切換到c模式 -u從按照柱面分區改成按照扇區來分區
partprobe /dev/sdb 通知操作系統分區表的變化
[root@nfs-server ~]# man partprobe PARTPROBE(8) GNU Parted Manual PARTPROBE(8) NAME partprobe - inform the OS of partition table changes
[root@nfs-server ~]# fdisk -cu /dev/sdb Command (m for help): m Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition 刪除分區 l list known partition types 列出分區類型 m print this menu 打印菜單 n add a new partition 創建分區 o create a new empty DOS partition table p print the partition table 打印分區表 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)
實驗分6個區:
以2P+1E(4L)的方式
[root@nfs-server ~]# fdisk -cu /dev/sdb Command (m for help): p Disk /dev/sdb: 1073 MB, 1073741824 bytes 255 heads, 63 sectors/track, 130 cylinders, total 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 identifier: 0x00025080 Device Boot Start End Blocks Id System Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First sector (2048-2097151, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151): +100M Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First sector (206848-2097151, default 206848): Using default value 206848 Last sector, +sectors or +size{K,M,G} (206848-2097151, default 2097151): +100M Command (m for help): n Command action e extended p primary partition (1-4) e Partition number (1-4): 3 First sector (411648-2097151, default 411648): Using default value 411648 Last sector, +sectors or +size{K,M,G} (411648-2097151, default 2097151): Using default value 2097151 Command (m for help): p Disk /dev/sdb: 1073 MB, 1073741824 bytes 255 heads, 63 sectors/track, 130 cylinders, total 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 identifier: 0x00025080 Device Boot Start End Blocks Id System /dev/sdb1 2048 206847 102400 83 Linux /dev/sdb2 206848 411647 102400 83 Linux /dev/sdb3 411648 2097151 842752 5 Extended Command (m for help): n Command action l logical (5 or over) p primary partition (1-4) l First sector (413696-2097151, default 413696): Using default value 413696 Last sector, +sectors or +size{K,M,G} (413696-2097151, default 2097151): +100M Command (m for help): n Command action l logical (5 or over) p primary partition (1-4) l First sector (620544-2097151, default 620544): Using default value 620544 Last sector, +sectors or +size{K,M,G} (620544-2097151, default 2097151): +100M Command (m for help): n Command action l logical (5 or over) p primary partition (1-4) l First sector (827392-2097151, default 827392): Using default value 827392 Last sector, +sectors or +size{K,M,G} (827392-2097151, default 2097151): +100M Command (m for help): n Command action l logical (5 or over) p primary partition (1-4) l First sector (1034240-2097151, default 1034240): Using default value 1034240 Last sector, +sectors or +size{K,M,G} (1034240-2097151, default 2097151): Using default value 2097151 Command (m for help): p Disk /dev/sdb: 1073 MB, 1073741824 bytes 255 heads, 63 sectors/track, 130 cylinders, total 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 identifier: 0x00025080 Device Boot Start End Blocks Id System /dev/sdb1 2048 206847 102400 83 Linux /dev/sdb2 206848 411647 102400 83 Linux /dev/sdb3 411648 2097151 842752 5 Extended /dev/sdb5 413696 618495 102400 83 Linux /dev/sdb6 620544 825343 102400 83 Linux /dev/sdb7 827392 1032191 102400 83 Linux /dev/sdb8 1034240 2097151 531456 83 Linux Command (m for help): t Partition number (1-8): 8 Hex code (type L to list codes): L 0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris 1 FAT12 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT- 2 XENIX root 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT- 3 XENIX usr 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT- 4 FAT16 <32M 41 PPC PReP Boot 85 Linux extended c7 Syrinx 5 Extended 42 SFS 86 NTFS volume set da Non-FS data 6 FAT16 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / . 7 HPFS/NTFS 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility 8 AIX 4f QNX4.x 3rd part 8e Linux LVM df BootIt 9 AIX bootable 50 OnTrack DM 93 Amoeba e1 DOS access a OS/2 Boot Manag 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O b W95 FAT32 52 CP/M 9f BSD/OS e4 SpeedStor c W95 FAT32 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs e W95 FAT16 (LBA) 54 OnTrackDM6 a5 FreeBSD ee GPT f W95 Ext'd (LBA) 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/ 10 OPUS 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b 11 Hidden FAT12 5c Priam Edisk a8 Darwin UFS f1 SpeedStor 12 Compaq diagnost 61 SpeedStor a9 NetBSD f4 SpeedStor 14 Hidden FAT16 <3 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary 16 Hidden FAT16 64 Novell Netware af HFS / HFS+ fb VMware VMFS 17 Hidden HPFS/NTF 65 Novell Netware b7 BSDI fs fc VMware VMKCORE 18 AST SmartSleep 70 DiskSecure Mult b8 BSDI swap fd Linux raid auto 1b Hidden W95 FAT3 75 PC/IX bb Boot Wizard hid fe LANstep 1c Hidden W95 FAT3 80 Old Minix be Solaris boot ff BBT 1e Hidden W95 FAT1 Hex code (type L to list codes): 8e Changed system type of partition 8 to 8e (Linux LVM) Command (m for help): p Disk /dev/sdb: 1073 MB, 1073741824 bytes 255 heads, 63 sectors/track, 130 cylinders, total 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 identifier: 0x00025080 Device Boot Start End Blocks Id System /dev/sdb1 2048 206847 102400 83 Linux /dev/sdb2 206848 411647 102400 83 Linux /dev/sdb3 411648 2097151 842752 5 Extended /dev/sdb5 413696 618495 102400 83 Linux /dev/sdb6 620544 825343 102400 83 Linux /dev/sdb7 827392 1032191 102400 83 Linux /dev/sdb8 1034240 2097151 531456 8e Linux LVM
將分區保存,並且將分區表變化通知操作系統
Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. [root@nfs-server ~]# partprobe /dev/sdb
parted分區
parted磁盤分區管理工具,它比fdisk更加靈活豐富,同時支持GUID分區。GUID磁盤分割表(GPT)
parted分區場景:一般大於2T的分區
GPT是指全局唯一標識磁盤分區表格式
由於MBR分區表的最大可尋址的存儲空間只有2Tb,因此,在大硬盤出現的現在,MBR分區方式和逐漸被GUID分區表取代
分區的命令幫助欄 [root@nfs-server ~]# parted /dev/sdb GNU Parted 2.1 使用 /dev/sdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) help align-check TYPE N check partition N for TYPE(min|opt) alignment check NUMBER do a simple check on the file system cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER copy file system to another partition help [COMMAND] print general help, or help on COMMAND mklabel,mktable LABEL-TYPE create a new disklabel (partition table) mkfs NUMBER FS-TYPE make a FS-TYPE file system on partition NUMBER mkpart PART-TYPE [FS-TYPE] START END make a partition mkpartfs PART-TYPE FS-TYPE START END make a partition with a file system move NUMBER START END move partition NUMBER name NUMBER NAME name partition NUMBER as NAME print [devices|free|list,all|NUMBER] display the partition table, available devices, free space, all found partitions, or a particular partition quit exit program rescue START END rescue a lost partition near START and END resize NUMBER START END resize partition NUMBER and its file system rm NUMBER delete partition NUMBER select DEVICE choose the device to edit set NUMBER FLAG STATE change the FLAG on partition NUMBER toggle [NUMBER [FLAG]] toggle the state of FLAG on partition NUMBER unit UNIT set the default unit to UNIT version display the version number and copyright information of GNU Parted 修改分區表類型 (parted) p Model: VMware, VMware Virtual S (scsi) Disk /dev/sdb: 1074MB Sector size (logical/physical): 512B/512B Partition Table: msdos <==========改前 Number Start End Size Type File system 標誌 (parted) mklabel gpt 警告: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue? 是/Yes/否/No? yes (parted) p Model: VMware, VMware Virtual S (scsi) Disk /dev/sdb: 1074MB Sector size (logical/physical): 512B/512B Partition Table: gpt <==========改後 Number Start End Size File system Name 標誌 分區的增加和刪除 (parted) mkpart primary 0 100 警告: The resulting partition is not properly aligned for best performance. 忽略/Ignore/放棄/Cancel? Ignore (parted) p Model: VMware, VMware Virtual S (scsi) Disk /dev/sdb: 1074MB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name 標誌 1 17.4kB 100MB 100MB primary (parted) rm 1 (parted) p Model: VMware, VMware Virtual S (scsi) Disk /dev/sdb: 1074MB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name 標誌
非交互分區忽略提示實例:
parted /dev/sdb mklabel gpt yes parted /dev/sdb mkpart primary ext4 0 100 ignore parted /dev/sdb mkpart primary linux-swap 101 8192 ignore parted /dev/sdb mkpart logical ext4 8193 100GB ignore parted /dev/sdb mkpart logical ext4 101GB 3000GB ignore parted /dev/sdb quit
PS:parted分區是實時生效的,與fdisk不同
6 磁盤的格式化
[root@nfs-server ~]# ll /dev/sdb*
brw-rw---- 1 root disk 8, 16 7月 9 22:04 /dev/sdb
brw-rw---- 1 root disk 8, 17 7月 9 22:04 /dev/sdb1
brw-rw---- 1 root disk 8, 18 7月 9 22:04 /dev/sdb2
brw-rw---- 1 root disk 8, 21 7月 9 22:04 /dev/sdb5
格式化的實質:創建文件系統
mkfs -t ext4 /dev/sdb1 tune2fs -c -1 /dev/sdb 使用負值設置某一設備永遠不要自檢。 [root@nfs-server ~]# mkfs -t ext4 /dev/sdb1 mke2fs 1.41.12 (17-May-2010) 文件系統標籤= 操作系統:Linux 塊大小=1024 (log=0) 分塊大小=1024 (log=0) Stride=0 blocks, Stripe width=0 blocks 25688 inodes, 102400 blocks 5120 blocks (5.00%) reserved for the super user 第一個數據塊=1 Maximum filesystem blocks=67371008 13 block groups 8192 blocks per group, 8192 fragments per group 1976 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729 正在寫入inode表: 完成 Creating journal (4096 blocks): 完成 Writing superblocks and filesystem accounting information: 完成 This filesystem will be automatically checked every 25 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override
[root@nfs-server ~]# tune2fs -c -1 /dev/sdb1 tune2fs 1.41.12 (17-May-2010) Setting maximal mount count to -1
7 磁盤的掛載
掛載的實質:爲文件系統指定訪問入口
mount -t ext4 /dev/sdb1 /mnt
開機自動掛載:/etc/fstab
/dev/sdb1 /mnt ext4 defaults 0 0
mount -a 加fstab進行掛載測試
mount查看掛載
檢查掛載:
df -h,df -i
cat /proc/mounts或mount
[root@nfs-server ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 9.2G 1.8G 7.0G 20% / tmpfs 491M 0 491M 0% /dev/shm /dev/sda1 194M 29M 155M 16% /boot /dev/sdb1 97M 5.6M 87M 7% /mnt
[root@nfs-server ~]# mount /dev/sda3 on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw) /dev/sda1 on /boot type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) nfsd on /proc/fs/nfsd type nfsd (rw) /dev/sdb1 on /mnt type ext4 (rw)
8 free查看系統內存
[root@localhost ~]# free -m
total used free shared buffers cached
Mem: 980 441 539 0 85 154
-/+ buffers/cache: 201 779 <====真正剩餘的內存
Swap: 511 0 511
1)linux的特性是將系統不用的物理內存緩存起來,因此539不是系統的真實內存,779纔是真正可用的內存
2)buffers爲寫入緩衝區,sync將緩衝區數據寫入磁盤
3)cache爲讀取數據的緩存區
4)硬盤是機械的,無論是寫入還是讀取都太慢了,所以讀取和寫入都是用了緩存技術
5)門戶架構網站架構都會用緩存技術,來讓用戶寫入讀取儘可能不接觸磁盤
9 企業生產工作中磁盤的選型
主流服務器公司:DELL,HP,IBM
1)企業級SAS硬盤 15000轉/分主軸轉數
用途:用於提供生產線上的普通對外提供服務的業務服務器,沒有特殊業務需求,SAS首選
2)企業級SATA硬盤 7200-10000轉/分
線下不提供服務的數據存儲或者併發業務訪問不是很大的業務應用,比如站點程序及數據庫、圖片的線下備份等
選購小結:
1)線上的業務,用SAS磁盤
2)線下的業務,用SATA
3)線上高併發,小容量的業務,SSD磁盤
4)選擇思想:根據數據的訪問熱度,智能分析分層存儲
特別注意:
千萬不要用SATA磁盤來做在線高併發服務的數據存儲或數據庫業務
3)SSD固態電子盤:
容量小,價格貴,速度快。一般用於數據量小並且有超大規模高併發的業務
10 Raid
10.1 什麼是Raid?
磁盤陣列(Redundant Arrays of Independent Disks,RAID),有“獨立磁盤構成的具有冗餘能力的陣列”之意。
磁盤陣列是由很多價格較便宜的磁盤,組合成一個容量巨大的磁盤組,利用個別磁盤提供數據所產生加成效果提升整個磁盤系統效能。可以提供比單個物理磁盤更大的存儲容量或更高的存儲性能,同時又能提供不同級別的數據冗餘備份。
10.2 Raid級別介紹
Raid級別一般有:Raid0、Raid1、Raid3、Raid4、Raid5、Raid7、Raid10等
生產環境常用的Raid級別:Raid0、Raid1、Raid5、Raid10
RAID級別 | 優點 | 缺點 | 實際應用場景 |
RAID0 | 讀寫速度最快 | 沒有任何冗餘 | Mysql Slave,集羣的節點 |
RAID1 | 100%冗餘,鏡像 | 讀寫性能一般,成本高 | 單獨的,數據重要,且不能宕機的業務。監控,系統盤 |
RAID5 | 具備一定的性能和冗餘,可以壞一塊盤,讀性能不錯 | 寫入性能不高 | 一般的業務都可以用 |
RAID10 | 讀寫速度很快,100%冗餘 | 成本高 | 性能和冗餘要求都很高的業務,數據庫和存儲的主節點 |
10.3 Raid技術分類
軟RAID技術(性能不好,操作系統壞了,RAID受影響,一般不用)
硬RAID技術
基於硬件的RAID技術,在生產場景中,首選
10.4 Raid和LVM的區別
LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它是Linux環境下對磁盤分區進行管理的一種機制
如果過於強調性能和備份,那麼還是使用RAID功能,而不是LVM
Raid和LVM的區別
LVM:靈活的管理磁盤的容量,有一定的冗餘和性能功能,但很弱。
RAID:更側重性能和數據安全
10.5 爲什麼需要Raid
用RAID最直接的好處:
1、提升數據安全性
2、提升數據讀寫性能
3、提供更大的單一邏輯磁盤數據容量存儲
10.6 Raid級別詳細說明
Raid 0
在所有RAID級別中具有最高的存儲性能
要製作RAID0,要求至少是1塊物理磁盤
關注點 | 描述 |
容量 | 是3塊盤加在一起的容量,在RAID級別中具備最高的存儲性能,原理是把連續的數據分散到多個磁盤上存取。 |
性能 | 理論上磁盤讀寫速度比單盤提升3倍,磁盤越多倍數會越小 |
冗餘 | 無任何冗餘,壞1塊盤,整個RAID就不能用了 |
場合 | … |
特點 | 速度快,無冗餘,容量無損失 |
生產應用場景:
1、負載均衡集羣下面的多個相同RS節點服務器。
2、分佈式文件存儲下面的主節點或CHUNK SERVER
3、Mysql主從複製的多個Slave服務器
4、對性能要求很高,對冗餘要求很低的相關業務
Raid 1
又稱爲Mirror或Mirroring,最大限度的保證用戶數據的可用性和可修復性。
要求至少是兩塊磁盤,整個RAID大小等於兩個磁盤中最小的那塊磁盤的容量(最好使用同樣大小的磁盤),數據有100%的冗餘,在存儲時同時寫入兩塊磁盤,實現了磁盤的完整備份
關注點 | 描述 |
容量 | 損失50%的數據容量。例如:2塊1T的盤,做RAID1,容量1T |
性能 | Mirror不能提高存儲性能,理論上寫性能和單盤相差不大 |
冗餘 | 在所有RAID級別中,RAID1安全保障最高,冗餘度100% |
場合 | 適用於存放重要數據,如服務器系統分區和對性能要求不高的數據庫存儲等領域 |
特點 | 100%冗餘,容量損失一半 |
Raid 5
是一種存儲性能、數據安全和存儲成本兼顧的存儲解決方案。
RAID 5需要三塊或以上的物理磁盤,RAID5不對存儲的數據進行備份,而是把數據和相對應的奇偶校驗信息存儲到組成RAID5的各個磁盤上,並且奇偶校驗信息和相對應的數據分別存儲於不同的磁盤上。當RAID5的一個磁盤數據發生損壞後,利用剩下的數據和相應的奇偶校驗信息去恢復被損壞的數據。
關注點 | 描述 |
容量 | 損失一塊盤的數據容量 |
性能 | 具有和RAID0相近似的數據讀取速度,知識多了一個奇偶校驗信息,寫入數據的速度比對單個磁盤進行寫入稍慢 |
冗餘 | 可損失一塊盤,數據安全保障程度比RAID1低,而磁盤空間利用率比RAID1高 |
場合 | 是RIAD0和RIAD1的折中方案,適合對性能和冗餘都有一定要求,又都不是十分高的情況。Mysql的主從庫都可以,存儲也可以。普通的服務器爲了減少成本,又保持一定冗餘和讀寫性能都行 |
特點 | 容量損失一塊盤,寫數據通過奇偶校驗 |
Raid 10
Raid0和Raid1的組合形式,也稱Raid10
存儲和性能兼顧的方案
最低磁盤數量 | 4 |
優點/特點 | 缺點 |
RAID10以RAID0爲執行陣列,以RAID1爲數據保護陣列 | 存儲容量利用率較低,單位成本昂貴 |
RAID10擁有與RAID1一樣的容錯能力 | 磁盤並行工作使用相應磁軌持續性能被減弱 |
RAID10用於容錯處理的系統開銷與單獨鏡像操作基本一樣 | 由於成本的原因造成非常有限的可擴展性 |
由於使用RAID0作爲執行登記,因此具有較高的I/O帶寬 | |
對於想在RAID1基礎上大幅度提高性能的用戶,它是一個完美的解決方案 | |
適用領域 | 數據庫存儲服務器等需要高性能、高容錯但對容量要求不大的場合 |
RAID10和RAID01
RAID10系統要比RAID01系統冗餘度高,安全性高。