day21

什么是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大小  

你可能感兴趣的:(day21)