linux磁盤基礎知識

1 磁盤的內部結構

圖片.png

2 磁盤的接口類型

IDESATASCSIFCSASSCSI的新一代技術)

企業生產環境主流磁盤的相關信息對比

普及程度:SAS>SATA>SSD

單位容量對比性能和價格:SSD>SAS>SATA(一塊SSD和一塊SATA

單位價格購買磁盤容量:SATA>SAS>SSD

 

3 磁盤內部相關名詞

磁盤的磁頭(盤面個數)

磁盤的盤面,盤面號又叫磁頭號

磁盤的磁道

磁盤的柱面 柱面是所有盤面相同半徑的不同磁道的集合,柱面數=盤面的磁道數

磁盤的扇區,每個扇區大小是512字節,每個扇區的大小都是512個字節,一個扇區主要有兩部分內容:存儲數據地點的標識符和存儲數據的數據段

 

磁道柱面扇區總括

1、一塊磁盤有2-14個盤片,每個盤片有兩個面,每個面對應一個讀寫磁頭,用磁頭號來區分盤面,即盤面數就是磁頭數,盤片數*2=磁頭數(盤面數)

2、不同盤面的磁道被劃分爲多個扇形區域,每個區域就是一個扇區

3、同一個盤面,以盤片中心爲圓心,每個不同半徑的圓形軌跡就是一個磁道

4、不同盤面相同半徑的磁道組成一個圓柱面就是柱面

5、一個柱麪包含多個磁道,一個磁道包含多個扇區

6、數據信息記錄可以表示爲:某磁頭,某磁道(柱面),某扇區

4 磁盤容量的計算算法

磁盤容量計算方法

方法1512B*扇區數=每個磁道的大小   *磁道數=每個盤面的大小   *磁頭數(盤面個數)=磁盤容量

方法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 磁盤分區

圖片.png

5.1 主引導扇區

圖片.png

16字節分區表內容

字節數

說明

1Bytes

State       :分區狀態,0=未激活,0x80=激活

1Bytes

StartHead   :分區起始磁頭號

2Bytes

StartSC     :分區起始扇區和柱面號。低字節的低6位爲扇區號,高2位爲柱面號的第910位;高字節爲柱面號的低8

1Bytes

Type      :分區類型,如0x0B=FAT320x83=linux00表示未用

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及磁盤分區表大小的限制,如果對磁盤分配了4P3P+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+1E4L)的方式

[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

PSparted分區是實時生效的,與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 -hdf -i

     cat /proc/mountsmount

[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

1linux的特性是將系統不用的物理內存緩存起來,因此539不是系統的真實內存,779纔是真正可用的內存

2buffers爲寫入緩衝區,sync將緩衝區數據寫入磁盤

3cache爲讀取數據的緩存區

4)硬盤是機械的,無論是寫入還是讀取都太慢了,所以讀取和寫入都是用了緩存技術

5)門戶架構網站架構都會用緩存技術,來讓用戶寫入讀取儘可能不接觸磁盤


9 企業生產工作中磁盤的選型

主流服務器公司:DELL,HP,IBM

1)企業級SAS硬盤 15000/分主軸轉數

用途:用於提供生產線上的普通對外提供服務的業務服務器,沒有特殊業務需求,SAS首選

2)企業級SATA硬盤 7200-10000/

線下不提供服務的數據存儲或者併發業務訪問不是很大的業務應用,比如站點程序及數據庫、圖片的線下備份等

選購小結:

1)線上的業務,用SAS磁盤

2)線下的業務,用SATA

3)線上高併發,小容量的業務,SSD磁盤

4)選擇思想:根據數據的訪問熱度,智能分析分層存儲

特別注意:

千萬不要用SATA磁盤來做在線高併發服務的數據存儲或數據庫業務

3SSD固態電子盤:

容量小,價格貴,速度快。一般用於數據量小並且有超大規模高併發的業務

10 Raid

10.1 什麼是Raid

磁盤陣列(Redundant Arrays of Independent DisksRAID),有“獨立磁盤構成的具有冗餘能力的陣列”之意。

磁盤陣列是由很多價格較便宜的磁盤,組合成一個容量巨大的磁盤組,利用個別磁盤提供數據所產生加成效果提升整個磁盤系統效能。可以提供比單個物理磁盤更大的存儲容量或更高的存儲性能,同時又能提供不同級別的數據冗餘備份。

 

10.2 Raid級別介紹

Raid級別一般有:Raid0Raid1Raid3Raid4Raid5Raid7Raid10

生產環境常用的Raid級別:Raid0Raid1Raid5Raid10

RAID級別

優點

缺點

實際應用場景

RAID0

讀寫速度最快

沒有任何冗餘

Mysql Slave,集羣的節點

RAID1

100%冗餘,鏡像

讀寫性能一般,成本高

單獨的,數據重要,且不能宕機的業務。監控,系統盤

RAID5

具備一定的性能和冗餘,可以壞一塊盤,讀性能不錯

寫入性能不高

一般的業務都可以用

RAID10

讀寫速度很快,100%冗餘

成本高

性能和冗餘要求都很高的業務,數據庫和存儲的主節點

 

10.3 Raid技術分類

RAID技術(性能不好,操作系統壞了,RAID受影響,一般不用)

RAID技術

基於硬件的RAID技術,在生產場景中,首選

10.4 RaidLVM的區別

LVM Logical Volume Manager(邏輯卷管理)的簡寫,它是Linux環境下對磁盤分區進行管理的一種機制

如果過於強調性能和備份,那麼還是使用RAID功能,而不是LVM

RaidLVM的區別

LVM:靈活的管理磁盤的容量,有一定的冗餘和性能功能,但很弱。

RAID:更側重性能和數據安全

 

10.5 爲什麼需要Raid

RAID最直接的好處:

1、提升數據安全性

2、提升數據讀寫性能

3、提供更大的單一邏輯磁盤數據容量存儲

 

10.6 Raid級別詳細說明

Raid 0

在所有RAID級別中具有最高的存儲性能

要製作RAID0,要求至少是1塊物理磁盤

 圖片.png

關注點

描述

容量

3塊盤加在一起的容量,在RAID級別中具備最高的存儲性能,原理是把連續的數據分散到多個磁盤上存取。

性能

理論上磁盤讀寫速度比單盤提升3倍,磁盤越多倍數會越小

冗餘

無任何冗餘,壞1塊盤,整個RAID就不能用了

場合

特點

速度快,無冗餘,容量無損失

生產應用場景:

1、負載均衡集羣下面的多個相同RS節點服務器。

2、分佈式文件存儲下面的主節點或CHUNK SERVER

3、Mysql主從複製的多個Slave服務器

4、對性能要求很高,對冗餘要求很低的相關業務

Raid 1

又稱爲MirrorMirroring,最大限度的保證用戶數據的可用性和可修復性。

要求至少是兩塊磁盤,整個RAID大小等於兩個磁盤中最小的那塊磁盤的容量(最好使用同樣大小的磁盤),數據有100%的冗餘,在存儲時同時寫入兩塊磁盤,實現了磁盤的完整備份

圖片.png

關注點

描述

容量

損失50%的數據容量。例如:21T的盤,做RAID1,容量1T

性能

Mirror不能提高存儲性能,理論上寫性能和單盤相差不大

冗餘

在所有RAID級別中,RAID1安全保障最高,冗餘度100%

場合

適用於存放重要數據,如服務器系統分區和對性能要求不高的數據庫存儲等領域

特點

100%冗餘,容量損失一半

 

Raid 5

是一種存儲性能、數據安全和存儲成本兼顧的存儲解決方案。

RAID 5需要三塊或以上的物理磁盤,RAID5不對存儲的數據進行備份,而是把數據和相對應的奇偶校驗信息存儲到組成RAID5的各個磁盤上,並且奇偶校驗信息和相對應的數據分別存儲於不同的磁盤上。當RAID5的一個磁盤數據發生損壞後,利用剩下的數據和相應的奇偶校驗信息去恢復被損壞的數據。

圖片.png

關注點

描述

容量

損失一塊盤的數據容量

性能

具有和RAID0相近似的數據讀取速度,知識多了一個奇偶校驗信息,寫入數據的速度比對單個磁盤進行寫入稍慢

冗餘

可損失一塊盤,數據安全保障程度比RAID1低,而磁盤空間利用率比RAID1

場合

RIAD0RIAD1的折中方案,適合對性能和冗餘都有一定要求,又都不是十分高的情況。Mysql的主從庫都可以,存儲也可以。普通的服務器爲了減少成本,又保持一定冗餘和讀寫性能都行

特點

容量損失一塊盤,寫數據通過奇偶校驗

 

Raid 10

Raid0Raid1的組合形式,也稱Raid10

存儲和性能兼顧的方案

最低磁盤數量

4

優點/特點

缺點

RAID10RAID0爲執行陣列,以RAID1爲數據保護陣列

存儲容量利用率較低,單位成本昂貴

RAID10擁有與RAID1一樣的容錯能力

磁盤並行工作使用相應磁軌持續性能被減弱

RAID10用於容錯處理的系統開銷與單獨鏡像操作基本一樣

由於成本的原因造成非常有限的可擴展性

由於使用RAID0作爲執行登記,因此具有較高的I/O帶寬

對於想在RAID1基礎上大幅度提高性能的用戶,它是一個完美的解決方案

適用領域

數據庫存儲服務器等需要高性能、高容錯但對容量要求不大的場合

 

RAID10RAID01

圖片.png

RAID10系統要比RAID01系統冗餘度高,安全性高。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章