什么是Raid?
Raid 是廉价冗余磁盘阵列 简称磁盘阵列
Raid是一种把多块独立的物理磁盘按不同的技术方式组合起来形成一个磁盘组
在逻辑上看起来就是一块大的磁盘 可以提供比单个物理磁盘更大的存储容量
或更高的存储性能,同时又能提供不同级别数据冗余备份的一种技术
Riad级别级别
把多个物理磁盘通过不同的技术方式组成磁盘阵列,这个不同的技术方式
就被称为Raid级别
Raid级别一般有 Raid0 Raid1 Raid2 Raid3 Raid4 Raid5 Raid6 Raid7
Raid0+1(也称为Raid10) Raid53
生产环境常用的Raid级别: Raid0 Raid1 Raid5 Raid10
Raid级别的优缺点:
Raid级别 关键优点 关键缺点 实际应用场景
Raid0 读写速度最快 没有任何冗余 MySQL Slave 集群的节点
Raid1 100%冗余,镜像 读写性能一般
成本高 单独的,数据重要,且不能
宕机的业务.监控 系统盘
Raid5 具备一定的性能
和冗余,可以坏一 写入性能不高 一般的业务都可以用
块盘 读取性能不错
Raid10 读写速度很快, 成本高 性能和冗余要求都很好的
Raid0+1 100%冗余 业务. 数据库主库和存储
的主节点
什么是冗余?
当某一设备发生损坏时 它可以自动作为后备式设备代替该设备
常见的Raid技术分类
1.软Raid技术
系统层面实现 性能差
2.硬Raid技术
硬件层面实现 性能好
主板板载Raid 功能弱 Raid0 ,1
独立Raid卡 功能强 Raid0,1,5,10
LVM
LVM是软件层面实现的 性能太低 性能降低5-10%
买服务器插满磁盘 分区规划好 永远都不需要LVM.
Raid和LVM区别
LVM: 灵活的管理磁盘的容量,有一定的冗余和性能功能,但很弱
Raid: 更侧重性能和数据安全
为什么需要Raid
磁盘阵列可以把多个磁盘驱动通过不同的连接方式连接在一起协同工作
大大提高了读写速度,同时把磁盘系统的可靠性提高到无错的境界,使其
可靠性极高
Raid的好处
1) 提升数据安全性
2) 提升数据读写性能
3) 提供更大的单一逻辑磁盘数据容量存储
Raid0应用场景:
1. 负载均衡集群下面的多个相同RS节点服务器
2. 分布式文件存储下面的主节点或CHUNK SERVER
3. MySQL 主从从复制的多个Slave服务器
4. 对性能要求很高 对冗余要求很低的相关业务
Raid1 描述
称为Mirror或Mirroring镜像 宗旨是最大限度的保证用户数据
的可用性个可修复性
Raid5 描述
raid5是一种存储性能 数据安全 和存储成本
raid5可以说是raid0和raid5的折中方案 只是多了一个奇偶校验
写入速度较慢
Raid10 , Raid0+1
RAID1又称为Mirror或Mirroring(镜像),
它的宗旨是最大限度的保证用户数据的可用性和可修复性。
RAID1的操作方式是把用户写入一个磁盘的数据百分之百地自动复制到另外
一个磁盘上,从而实现存储双份的数据。
RAID5描述 中庸
RAID5是一种存储性能、数据安全和存储成本兼顾的存储解决方案。
RAID5需要三块或以上的物理磁盘,可以提供热备盘实现故障的恢复;
采用【奇偶校验】,可靠性强,且只有同时损坏两块硬盘时数据才会完全损坏,
只损坏一块硬盘时,系统会根据存储的奇偶校验位重建数据,临时提供服务;此时如果有热备盘,系统还会自动在热备盘上重建故障磁盘上的数据;
分区知识:
(1)什么是分区:
磁盘分区就相当于给磁盘打隔断
(2)磁盘和分区在linux里的命名
IDE /dev/hda hdb
SCSI sda sdb
分区数字表述: sda1 sda2 sda3
(3)磁盘分区类型和特点
1.主分区 (primary) P
1)系统中必须要存在的分区 系统盘选择主分区安装
2)数字编号只能是1-4 sda1 sda2 sda3 sda4
3)主分区最多四个 最少一个
2.扩展分区 (extend) E
1)相当于一个独立的小磁盘 独立的分区表 不能独立存在
2)有独立的分区表
3)不能独立存在 即不能直接存放数据
4)必须在扩展分区上建立逻辑分区才能存放数据
5)会占用主分区的编号(主分区+扩展分区) 之和最多四个
6)可以没有 但不能超过一个
3.逻辑分区 (logic) L
1)数字编号只能从5开始
2)存放与扩展分区之上
3)存放任意普通数据
磁盘分区注意事项要点:
一块硬盘的分区方式只能为如下组合之一:
(1) 任意多个主分区,但要求1≥主分区数量≤4
例如: 一个硬盘可以分为四个主分区三个主分区两个主分区或一个主分区
(2) 扩展分区可以和主分区结合 但要求2≤(主分区+扩展分区)数量≤4
例如: 三个主分区+一个扩展分区或两个主分区+一个扩展分区或一个主分区
+一个扩展分区.当总分区的数量大于四个的时候 必须提前分一个扩展分区
扩展分区最多只能有一个
(3) 如果要分成四个磁盘分区的话 那么最多就是可以:
p + p + p + p
P + P + P + E
问题:
如果给一个磁盘分六个分区有哪些方法 分区/dev/hda(数字)
3P+1E(3L) sda123 sda567
2P+1E(4L) sda12 sda5678
1P+1E(5L) sda1 sda56789
分区分完了 空间还有剩余的空间就浪费了
(4) 磁盘分区工作原理
磁盘分区按柱面分区
磁盘分区
登记地点 : 磁盘分区表
磁盘分区表存放分区结果信息的.
位置 0磁道0磁头1扇区(512字节)
占用一扇区的前446字节(系统引导信息的)后面的64字节
(分区表) 剩下的两个字节分区结束标志
磁盘分区表的容量是有限的 64字节 一个分区固定占16字节
64/16=4分区(主分区+扩展分区)
(5) 磁盘分区实战
磁盘分区的关键就是修改64字节的分区表而已
磁盘分区常用命令fdisk 修改MBR分区表 MBR格式
缺陷 被修改的磁盘大小不能大于2T
磁盘分区其他命令parted gpt分区格式 既能修改小于2T
也能修改大于2T的磁盘
小于2T就用fdisk
大于2T就用parted
fdisk使用
[root@oldboyedu ~]# fdisk -l
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 /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 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: 0x000cd234
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 526335 262144 83 Linux
/dev/sda2 526336 2099199 786432 82 Linux swap / Solaris
/dev/sda3 2099200 41943039 19921920 83 Linux
[root@oldboyedu ~]# fdisk /dev/sdb #<==开始给sdb磁盘分区
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 0xbc9b0906.
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 #<==删除一个分区。
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 #<==添加一个新分区。
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)
Command (m for help):
开始实践:
问题:如果给一个磁盘分6个分区有哪些方案,同时写出分区/dev/sda(数字)。
3P+1E(3L) 1 2 3 5 6 7
2P+1E(4L) 12 5678
1P+1E(5L) 1 56789
用下面方案:
3P+1E(3L) 1 2 3 5 6 7 每个150M
[root@oldboyedu ~]# fdisk /dev/sdb
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 0x827687e9.
Command (m for help): ^C
[root@oldboyedu ~]#
[root@oldboyedu ~]#
[root@oldboyedu ~]#
[root@oldboyedu ~]#
[root@oldboyedu ~]# fdisk /dev/sdb
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 0xbc9b0906.
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
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
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)
dd if=/dev/sda of=/dev/sdc bs=512 count=10240
来源 生成文件系统 block大小