Day 21
作者:翟玉龙
归档:课堂笔记
2019/3/08
第1章 Raid
.1]raid介绍
什么是raid:raid是廉价冗余磁盘阵列的简称,有事也简称为磁盘阵列
raid是一种把多块独立的物理磁盘按不同的技术方式组合起来形成的一个磁盘组,在逻辑上,看起来就是一个大的磁盘,可以提供比单个物理磁盘更大的存储容量或更高的存储性能,同时又能提供不同级别数据冗余备份的一种技术。
Raid级别一般有Raid 0 Raid 1 Raid 5 Raid 0+1/1+0/1
优缺点对比:
RAID级别关键优点关键缺点实际应用场景
RAID 0读写速度最快没有任何冗余MySQL Slave 集群的节点RS
RAID 1100%冗余,镜像读写性能一般,成本高单独的数据重要,且不能宕机的业务。监控,系统盘
RAID 5具备一定性能和冗余,可以坏一块盘,读性能不错写入性能不高一般的业务都可以用
RAID 0+1
RAID 10
读写速度很快,100%冗余成本高性能和冗余要求都很好的业务数据库主库和存储的主节点
什么是冗余?
冗余是指匆匆福配置系统的一些部件当系统发生故障时,冗余配置的部件介入并承担故障部件的工作,由此减少系统的故障时间。Redundant 自动备援,即当某一设备发生损坏时,他可以自动作为后备设备代替该设备
Raid分为两类:
软Raid:系统层面实现,性能差
硬Raid:硬件层面实现的,性能好
硬Raid又分为两类:
主板板载Raid 功能弱 1 0
独立Raid卡:功能强0 1 5 10……..***********工作选择
LVM
逻辑卷管理
用途:灵活的管理磁盘容量让磁盘分区可以随意放大和缩小,便于更好的应用磁盘剩余空间,如果过于强调性能和备份,还是选择RAID。
LVM是软件层面实现的,性能太低。 性能降低5-10%
买服务器插满磁盘,分区规划好了,永远都不需要LVM。
区别:
LVM:灵活的磁盘管理,有一定的冗余和性能,但很弱
Raid:更注重性能和数据安全
关注点描述
容量是所有盘之和,原理是把连续的数据分散到多个磁盘上存取
性能理论上磁盘读写速度比单盘提升四倍,磁盘越多倍数越小
冗余我冗余,坏一个凉凉
场合适合于大规模并发读写,但对数据安全性要求不高的数据。如:集群中的RS,做虚拟机的实体机,负载均衡集群下面的多个相同RS节点服务器,如分布式文件存储下面CHUNK SERVER 以及MySQL主从复制的多个Slave服务器
特点速度快,无冗余,容量无损失
[if !supportLists]1.1.2[endif]Raid1:
raid1被称为镜像。保证数据最大限度的可用性和可修复性。Raid的操作方式是最大限度的
[if !supportLists]1.1.3[endif]Raid 5 描述:中庸
Raid5是一种存储性能,数据安全和存储成本兼顾的存储解决方案
Raid5需要三块或以上的物理磁盘,可以提供热备盘实现故障的恢复,采用【奇偶校验】,可靠性强,切只有同时损坏两块硬盘时,数据才会完全损坏,只损坏一个盘时,可以通过奇偶校验恢复另一块盘的数据。但是也是因为多了写入奇偶校验信息,所以写入的时候会别单块盘慢。通过奇偶校验和其他盘数据恢复损坏盘的数据。
[if !vml]
[endif]
关注点描述
容量最低3块只损失一块盘的数据容量
性能Raid5具有和Raid0相近似的数据读取速度,知识多了一个奇偶校验信息,写入数据的速度较慢
冗余可损失一块盘,Raid5数据安全保障程度比Raid1低,而磁盘空间利用率比Raid1高
场合Raid5可以理解为是Raid0和Raid1 的折中方案,适合对性能和冗余都有一定要求又不是很高的情况,MySQL的主从库都可以,存储也可以。普通的服务器为了减少维护成本,有保持一定冗余和读性能都可以做Raid5
特点容量损失一块盘,写数据通过奇偶校验,Raid0和Raid1的折中方案
对性能和安全要求高的不要选择Raid5.,适用领域:文件和应用服务器。数据库服务器,Web。E-Mail以及新闻服务器RAID-5是适用领域最多的RAID等级
[if !supportLists]1.1.4[endif]Raid10和Raid01
他两个都是将磁盘按照不同的方式进行的逻辑组合
我们以四快盘来细说区别:
raid10 是先将四快盘在纵向上分别两两做镜像,镜像后再在横向上来做条带。简而言之:Raid10实现做镜像后做条带,在折中情况下,如果只是坏其中一个硬盘,对Radi的影响都不是很大,只要不是同时坏掉其中一个硬盘和他的镜像盘,Raid组都不会崩溃
[if !vml]
[endif]
如果某时刻,左边的raid0系统中有一块磁盘损坏,此时左边的raid0系统便没有丝毫作用了,所有的IO均转向右边的Raid0系统,而此时,仅仅允许左边剩余的那块磁盘损坏,如果右边任何一块磁盘损坏,则整体数据将不可用,所以这个系统的冗余度变成了1,即只允许损坏特定的一块磁盘(左边raid0系统剩余的磁盘)
综上所述,raid10系统要比raid01系统冗余度高,安全性高。
关注点描述
容量损失一半盘的数据容量
性能>1和5,小于0
冗余可损失2块,大于5和0,小于1
场合高并发存储和数据库系统
[if !supportLists]第2章 [endif]磁盘分区
磁盘在Linux里的命名
IDE /dev/hda hdb
SCSI sda sdb
分区是sda1 sda2 sda3
分区是用数字表示
磁盘分区相当于给磁盘打隔断。
磁盘分区类型和特点:
[if !supportLists]1. [endif]主分区(primary) p
<1>
系统中必须要从在的分区,系统盘选择主分区安装。
<2> 数字编号只能是1-4 sda1 sda2 sda3 sda4
<3>
主分区最多四个,最少一个。
[if !supportLists]2. [endif]扩展分区(extent)e
<1> 相当于一个独立的小磁盘,有自己独立的分区表,不能独立存在
<2> 有独立的分区表
<3> 不能独立存在,即不能直接存放数据。
<4> 必须在拓展分区上建立逻辑分区才能存放数据
<5> 占用主分区的编号(主分区+拓展分区)之和<=4
<6> 拓展分区可以没有,但是最多只能有一个
[if !supportLists]3. [endif]逻辑分区(logic) l
<1> 数字编号只能从5开始
<2> 存放在拓展分区之上
<3> 存放任意普通数据
磁盘分区注意事项:
一块硬盘的分区方式只能为如下组合之一
1.
任意多个主分区,但是1<=主分区数量<=4
2.扩展分区可以和主分区组合,但要求两者之和小于等于4大于等于2
扩展分区只能有一个
问题:如果给一个磁盘分6个分区有哪些方案,同时写出分区/dev/sda(数字)
3P+1E(3L) 三个主分区一个拓展分区,在拓展分区上建立三个逻辑分区
即 /dev/sda1 sda2 sda3 sda5 sda6 sda7
2P+1E(4L) /dev/sda1 sda2 sda5 sda6 sda7 sda8
1P+1E(5L) /dev/sda1 sda5 sda6 sda7 sda8 sda9
[if !supportLists]2.1[endif]磁盘分区工作原理
磁盘是按柱面来分区的。
磁盘分区:磁盘分区登记的地点叫做磁盘分区表
磁盘分区表用来存放分区结果信息的。
位置0磁道0柱面(磁头)1扇区
占用一扇区的前446字节(存放系统引导信息的MBR)后面的64字节(分区表),剩下两个字节是分区结束标志55AA。
磁盘分区表容量是有限的,64个字节,一个分区固定16个字节
所以只能有四个分区(主分区+拓展分区)
[if !vml]
[endif][if !vml]
[endif]
[if !supportLists]2.2[endif]磁盘分区实战
磁盘分区本质改64字节的分区表而已。
磁盘分区常用fdisk命令,修改MBR分区表,MBR格式
缺陷,被修改的磁盘大小不能大于2T。
为了让在系统里能够显示新添加的硬盘已知有两种操作方法
1.
重启 2.输入echo "- - -" > /sys/class/scsi_host/host0/scan
并且scsi_host 文件夹中有好几个host 文件,如果host0 执行后无法显示出新添加的硬盘,那 吧host1 host2 也执行一次试试
执行成功后 新添加的硬盘会显示出来
磁盘分区其他命令parted,GPT分区格式,既修改小于2T,也能修改大于2T的磁盘
小于2T就用 fdisk 可以用parted但是不建议
大于2T就用 parted
[root@zyl 12:32:30 ~]# fdisk /dev/sdb 给sdb分区
Command (m forhelp): m 敲m帮助
n add a new partition 添加一个新的分区
e 添加拓展分区
m print this menu 查看分区的帮助
p print the partition table 查看分区结果信息
q quit without saving changes 退出不保存
w write table to disk and exit 保存退出
d delete a partition 删除一个分区l list known partition types 列出分区类型(8e Linux LVM)
t change a partition's system id 改变分区类型
创建主分区操作
Command (m for help): n
创建分区
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
指定创建的是主分区
Partition number (1-4, default 1): 1
指定分区号码
First sector (2048-20479, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20479, default 20479): +5M
指定分区大小
Partition 1 of type Linux and of size 5 MiB is set
创建扩展分区
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e
指定创建扩展分区
Partition number (2-4, default 2):
First sector (12288-20479, default 12288):
Using default value 12288
Last sector, +sectors or +size{K,M,G} (12288-20479, default 20479):
不输大小表示剩余全部空间
Using default value 20479
Partition 2 of type Extended and of size 4 MiB is set
创建逻辑分区:
Command (m for help): n
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l
需要首先创建好扩展分区
Adding logical partition 5
First sector (14336-20479, default 14336):
Using default value 14336
Last sector, +sectors or +size{K,M,G} (14336-20479, default 20479):
Using default value 20479
Partition 5 of type Linux and of size 3 MiB is set
输出分区信息
Command (m for help): p
Disk /dev/sdb: 10 MB, 10485760 bytes, 20480 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: 0x43a2def7
Device Boot Start End Blocks Id System
/dev/sdb1 2048 12287 5120 83 Linux
/dev/sdb2 12288 20479 4096 5 Extended
/dev/sdb5 14336 20479 3072 83 Linux
调整分区类型
Command (m for help): t
Partition number (1,2, default 2): 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'