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系统冗余度高,安全性高。