RAID和逻辑卷

1、RAID技术
2、RAID实验
3、逻辑卷管理
4、逻辑卷快照

RAID技术

 

RAID

名称

读写性能

容错/校验位

磁盘利用率

最小磁盘数

raid0

读写性能提升

100%

1

raid1

读提升,写下降

有冗余 1

1/2

2

raid5

读写性能提升

容错1 校验1

n-1/n

3

raid6

读写性能提升

容错2 校验2

n-2/n

4

raid10

读写性能提升

每组镜像1

1/2

4

raid01

读写性能提升

比不上raid10

1/2

4

raid50

读写性能提升

非常高

1/3

9

spare disk 备用盘

 

RAID

mdadm:为软RAID提供管理界面

生成的设备为:/dev/md0/dev/md1/dev/md2

mdmulti devices

 

软件RAID的实现

mdadm:模式化的工具

命令的语法格式:mdadm[mode] <raiddevice> [options] <component-devices>

支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10

模式:

创建:-C

装配:   -A

监控:   -F

管理:-f, -r, -a

<raiddevice>: /dev/md#

<component-devices>: 任意块设备

-C: 创建模式

-n #: 使用#个块设备来创建此RAID

-l #:指明要创建的RAID的级别

-a {yes|no}:自动创建目标RAID设备的设备文件

-c CHUNK_SIZE: 指明块大小,单位k

-x #: 指明空闲盘的个数

-D:显示raid的详细信息

mdadm-D /dev/md#

管理模式:

-f: 标记指定磁盘为损坏

-a: 添加磁盘

-r: 移除磁盘

观察md的状态:

cat /proc/mdstat

 

 

软RAID实验

软件实现RAID5

实验环境Centos6

1、分区(fd),磁盘大小一致

fdisk  /dev/sdb

t fd

后面的分区可以直接复制分区表实现:

dd if=/dev/sdb of=/dev/sdc bs=1 count=66 skip=446 seek=446

partx -a /dev/sdc

最少4块磁盘

2、mdadm -C /dev/md0 -a yes -l 5 -c 32 -n 3 -x 1 /dev/sd{b,c,d,e}1

mdadm -D /dev/md0

3、mkfs.ext4 /dev/md0 -L raid5

4、vim /etc/fstab

UUID=….     /mnt/raid   ext4    defaults      0     0

mkdir /mnt/raid

mount -a

5、创建配置文件,如果无,禁用再启用后会提示无法找到配置文件

mdadm -Ds /dev/md0 > /etc/mdadm.conf

6、mdadm -S /dev/md0 停止(umount)

7、mdadm -A /dev/md0 激活

8、mdadm /dev/md0 -f /dev/sde1   损坏

9、mdadm /dev/md0 -r /dev/sde1   删除

10、mdadm /dev/md0 -a /dev/sde1 加

 

作业:实现raid10

方法一:

mdadm -C /dev/md0 -a yes -l1 -n2 /dev/sd{b,c}

mdadm -C /dev/md1 -a yes -l1 -n2 /dev/sd{d,e}

mdadm -C /dev/md2 -a yes -l1 -n2 /dev/md{0,1}

 

方法二:

mdadm -C /dev/md0 -a yes -110 -n4 /dev/sd{b,c,d,e}

 

同步raid分区所有的文件系统,只适合ext文件系统

resize2fs /dev/md0

 

xfs文件系统用以下命令:

xfa_growfs /mnt/raid

 

RAID扩展增加新成员

mdadm -G /dev/md0 -n4 -a /dev/sdf1

resize2fs /dev/md0        同步文件系统ext文件系统版

xfs_growfs /mnt/raid     同步xfs文件系统(后面跟的是挂载点)

 

查看RAID信息      cat /proc/mdstat

 

删除RAID

1、umount  /mnt/raid/

2、如果有人在用先    fuser -km /mnt/raid/

3、修改/etc/fstab

4、确定成员数mdadm -D /dev/md0

5、rm -f /etc/mdadm.conf

6、mdadm -S /dev/md0

7、彻底清除RAID信息    mdadm –zero-superblock /dev/sdb1  或者   dd if=/dev/zero of=/dev/sdb1

8、删除成员分区

 

逻辑卷管理

LVM

允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小,允许在多个物理设备间重新组织文件系

统将设备指定为物理卷用一个或者多个物理卷来创建一个卷组,物理卷是用固定大小的物理区域(Physical

Extent,PE)来定义的,在物理卷上创建的逻辑卷是由物理区域(PE)组成可以在逻辑卷上创建文件系

统。

LVM: Logical Volume Manager,Version: 2

dm: device mapper:将一个或多个底层块设备组织成一个逻辑设备的模块

设备名:/dev/dm-#

 

创建逻辑卷

1、创建物理卷

pvcreate /dev/sd{b,c}1

pvs

pvdisplay

2、创建卷组

vgs

vgdisplay

vgcreate  -s 16M vg0 /dev/sd{b,c}1

3、创建逻辑卷(-L 容量为单位 -l PE个数为单位)

lvcreate -n lv0 -l 100 vg0     (lv0为设定逻辑卷名,为软链接,真名为dm-0)

lvs

lvdisplay

创建lv1,并用光所有空间

lvcreate -n lv1 -l 100%FREE vg0

ll /dev/mapper/vg0-lv0

ll /dev/mapper/vg0-lv1

或者

ll /dev/vg0/lv0

ll /dev/vg0/lv0

4、创建文件系统

mkfs.ext4 /dev/vg0/lv0

mkfs.ext4 /dev/vg0/lv0

5、挂载

mkdir /mnt/lv0

mkdir /mnt/lv1

vim /etc/fstab

UUID=….          /mnt/lv0  ext4   defaults   0   0

UUID=….          /mnt/lv1  ext4   defaults   0   0

mount -a

 

逻辑卷空间扩展

这种扩展属于在线扩展,不会影响现有用户的使用。

1、增加空间(加分区或者增加物理硬盘)

插上硬盘

echo ‘- – -‘ > /sys/class/scsi_host/host2/scan

直接增加硬盘不用分区

2、创建物理卷

pvcreate /dev/sdd

pvs

3、加入卷组

vgextend vg0  /dev/sdd

注意:

最好在增加容量的同时,同步文件系统(-r)

lvextend -r -l +100%FREE /dev/vg0/lv0

4、扩展逻辑卷空间(-l +200    -L +5G这里为增加,-l 200 -L 5G这里表示增加到,增加全部剩余空间 -l

+100%FREE)

lvextend -L +5G  /dev/vg0/lv0

5、同步文件系统(xfs文件系统:xfs_growfs)

resize2fs /dev/vg0/lv0

 

调整逻辑卷大小(缩减逻辑卷空间)

确保现有数据能放得下的情况缩,在缩减之前先备份(tar)

ext文件系统可以缩减,xfs文件系统不能缩减(除非格式化)

1、取消挂载(只能在无用户在线下缩减,fuser -km)

umount /mnt/lv0

2、缩减文件系统

fsck -f /dev/vg0/lv0

resize2fs /dev/vg0/lv0 10G      (缩到10G)

3、缩减逻辑卷

lvreduce -L 10G /dev/vg0/lv0

4、挂载分区

mount -a

 

硬盘老化报警,需要更换硬盘,逻辑卷如何处理?

pvdisplay

Allocated PE 540

1、首先要找到能代替的空间(新加硬盘或者分区)

fdisk /dev/sdc

2、创建物理卷

pvcreate /dev/sdc2

3、加入卷组

vgextend vg0 /dev/sdc2

4、移动数据

pvmove /dev/sdd

5、移除卷组

vgreduce vg0 /dev/sdd

pvdisplay

pvremove /dev/sdd

 

迁移逻辑卷到新的机器

1、先把已使用的逻辑卷空间集中在某一物理硬盘

pvdisplay

pvmove /dev/sda7

2、减少对应的卷组

vgreduce /dev/sda7

3、如果新机器上有同名的逻辑卷那怎么办?

先改名

卷组:

vgrename vg0 centos6vg0

逻辑卷:

lvrename  /dev/centos6vg0/lv0  /dev/centos6vg0/centos6lv0

lvrename  /dev/centos6vg0/lv0 /dev/centos6vg1/centos6lv1

4、取消挂载

umount /mnt/lv0

5、禁用卷组

vgchange -an centos6vg0

6、导出卷组

vgexport centos6vg0

确认导出状态

vgdisplay

pvdisplay

7、拆除并移动磁盘

8、识别磁盘

echo ‘- – -‘ > /sys/clsss/scsi_host/host2/scan

9、导入硬盘

vgimport centos6vg0

10、启用卷组

vgchange -ay centos6vg0

11、挂载

mkdir /mnt/centos6lv0

mount /dev/centos6vg0/centos6lv0 /mnt/centos6lv0

 

逻辑卷快照

不能完全代替备份,例如同一硬盘上的快照,创建快照就立即在卷组中分配一块空间,逻辑卷快照和原逻

辑卷在同一卷组中,快照大小可以和原逻辑卷相同也可以不同。当原逻辑卷数据发生修改时,才会把旧数

据写入快照(修改,删除都会,而且不管修改多少次,永远保留最旧的那个)如果原逻辑卷数据没发生改

动,没有改动的区域则由快照区和文件系统共享,快照中只含有原来的逻辑卷中更改的数据或者自生成快

照后的快照中更改的数据,建立快照的卷大小只需要原始逻辑卷的15%~20%就够了,也可以使用lvextend放

大快照。

例如如果mysql数据库要进行备份,大小100G,在cp期间很可能数据发生变化,那就可以利用快照,这样

备份时,就不怕数据被改变。

实验:逻辑卷的快照

1、检查空间是否足够     vgdisplay

2、创建快照

lvcreate -n centos6lv0-snapshot -s -L 1G

/dev/centos6vg0/centos6lv0

lvdisplay

3、挂载并查看快照内容

mkdir /mnt/snap

mount /dev/centos6vg0/centos6lv0-snapshot /mnt/snap

4、由于挂载快照有可能会误删快照文件,导致备份失效,所以建议在建立快照时加入-p r 选项

lvcreate -n centos6lv0-snapshot -s -L 1G -p r /dev/centos6vg0/centos6lv0

5、挂载

mount /dev/centos6vg0/centos6lv0-snapshot  /mnt/snap

如果创建时未加-p r,也可以在挂载时修改成只读属性

mount -o ro /dev/centos6vg0/centos6lv0-snapshot /mnt/snap

注意:

ext4必须要加-p r 选项

xfs不能加-p r选项

否则恢复合并会不成功!

5、利用快照恢复

umount /mnt/snap/

umount /mnt/centos6lv0/

lvconvert –merge /dev/centos6vg0/centos6lv0

(如果在快照创建时没有加-p r选项会导致不能合并!这时只能用复制)

 

在Centos7上建立快照

lvcreate -n lv0-snapshot -L 1G -s /dev/vg0/lv0

xfs文件系统不允许相同UUID的设备同时挂载,所以无法挂载快照,所以想挂载必须:

mount -o nouuid /dev/vg0/lv0-snapshot /mnt/lv0-snap

快照恢复数据:

unmount /mnt/lv0

lvconvert –merge /dev/vg0/lv0-snapshot

mount /dev/vg0/lv0 /mnt/lv0

注意: 一旦还原数据,快照自动删除

 

删除带有快照逻辑卷:

umount /mnt/centos6lv0

lvremove /dev/centos6vg0/centos6lv0

会提示是否先删除快照,直接选y即可

 

只删除快照,不删除逻辑卷:

一样操作,先取消挂载,然后删除

umount /mnt/lv0-snap

lvremove /dev/vg0/lv0-snapshot

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/100764

(0)
MaxMax
上一篇 2018-06-10
下一篇 2018-06-10

相关推荐

  • mysql数据库三:

    用户权限管理和访问限制,数据库的锁定;索引和日志

    2018-06-09
  • 学习笔记(9)

    学习笔记(9)

    Linux笔记 2018-04-22
  • 内核配置和内核编译

    内核配置 /proc目录 内核把自己内部状态信息及统计信息,以及可配置参数通 过proc伪文件系统加以输出 sysctl命令 默认配置文件:/etc/sysctl.conf (1) 设置某参数 sysctl -w parameter=VALUE (2) 通过读取配置文件让设置的参数 生效;sysctl -p [/path/to/conf_file] (3) …

    Linux笔记 2018-05-11
  • 第一周作业

    1、描述计算机的组成及其功能。
    2、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
    3、描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。
    4、说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。
    5、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的。
    6、请罗列Linux发行版的基础目录名称命名法则及功用规定。

    Linux笔记 2018-05-13
  • 学习笔记(16)

    学习笔记

    Linux笔记 2018-05-06
  • Linux用户和组

    我们知道Linux是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。由于是多用户操作系统,必然要涉及到时管理用户。由于用户访问Linux上的资源比较多,为了方便管理出现的组的概念.将多个用户添加到一个组里,方便管理。 介绍安全3A 资源分派: Authentication:认证 Au…

    Linux笔记 2018-04-08