RAID和逻辑卷管理器(LVM)

什么是RAID
    RAID:RedundantArrays of Inexpensive(Independent)Disks 廉价的独立磁盘
    1988年由加利福尼亚大学伯克利分校(University of California-Berkeley)“A Case for Redundant Arrays of Inexpensive Disks”
    多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供
    
RAID
    提高IO能力
        磁盘并行读写
    提高耐用性
        磁盘冗余来实现
    级别:多块磁盘组织在一起的工作方式有所不同
    RAID实现的方式:
        外接式磁盘阵列:通过扩展卡提供适配能力
        内接式RAID:主板集成RAID控制器
            安装OS前在BIOS里配置
        软件RAID:通过OS实现
        
RAID级别
    RAID-0:条带卷,strip
    RAID-1: 镜像卷,mirror  
    RAID-2
    ...
    RAID-5
    RAID-6
    RAID-10
    RAID-01
    
    RAID-0:
        读、写性能提升;
        可用空间:N*min(S1,S2,...)
        无容错能力
        最少磁盘数:2, 2+
    
    RAID-1:
        读性能提升、写性能略有下降;
        可用空间:1*min(S1,S2,...)
        有冗余能力
        最少磁盘数:2, 2N
    
    RAID-4:
        多块数据盘异或运算值存于专用校验盘
        
    RAID-5:
        读、写性能提升
        可用空间:6力:允许最多1块磁盘损坏
        最少磁盘数:3, 3+
    
    RAID-6:
        读、写性能提升
        可用空间:(N-2)*min(S1,S2,...)  
        有容错能力:允许最多2块磁盘损坏
        最少磁盘数:4, 4+
        
    RAID-10:
        读、写性能提升
        可用空间:N*min(S1,S2,...)/2
        有容错能力:每组镜像最多只能坏一块
        最少磁盘数:4, 4+
            
组合RAID
    RAID-01
        多块磁盘先实现RAID0,再组合成RAID1
        
    RAID-50
        多块磁盘先实现RAID5,再组合成RAID0
    
    JBOD:Just a Bunch Of Disks
        功能:将多块磁盘的空间合并一个大的连续空间使用
            可用空间:sum(S1,S2,...)
    
    RAID7
        可以理解为一个独立存储计算机,自身带有操作系统和管理工具,可以独立运行,理论上性能最高的RAID模式
    常用级别:
        RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD
    
    软RAID
        mdadm:为软RAID提供管理界面
        为空余磁盘添加冗余
        结合内核中的md(multi devices)
        RAID设备可命名为/dev/md0、/dev/md1、/dev/md2、/dev/md3等
    
    软件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配置示例
    使用mdadm创建并定义RAID设备
        mdadm-C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
    用文件系统对每个RAID设备进行格式化
        mke2fs -j /dev/md0
    测试RAID设备
    使用mdadm检查RAID设备的状况
        mdadm--detail|D/dev/md0
    增加新的成员
        mdadm–G /dev/md0 –n4 -a /dev/sdf1
        
软RAID测试和修复
    模拟磁盘故障
        mdadm /dev/md0 -f /dev/sda1
    移除磁盘
        mdadm /dev/md0 –r /dev/sda1
    从软件RAID磁盘修复磁盘故障
        替换出故障的磁盘然后开机
        在备用驱动器上重建分区
        mdadm /dev/md0 -a /dev/sda1
    mdadm、/proc/mdstat及系统日志信息
    
软RAID管理
    生成配置文件:mdadm –D –s >> /etc/mdadm.conf
    停止设备:mdadm –S /dev/md0
    激活设备:mdadm –A –s /dev/md0 激活
    强制启动:mdadm –R /dev/md0
    删除raid信息:mdadm --zero-superblock /dev/sdb1
    
    
问题:如何创建一个软RAID5 添加一个硬盘备用????????
    机器可使用的硬盘:
        sdb      8:16   0   50G  0 disk
        sde      8:64   0   30G  0 disk
        sdc      8:32   0   40G  0 disk
        sdd      8:48   0   30G  0 disk
    将磁盘分区好:
        sdb      8:16   0   50G  0 disk
        └─sdb1   8:17   0   30G  0 part
        sde      8:64   0   30G  0 disk
        └─sde1   8:65   0   30G  0 part
        sdc      8:32   0   40G  0 disk
        └─sdc1   8:33   0   30G  0 part
        sdd      8:48   0   30G  0 disk
        └─sdd1   8:49   0   30G  0 part
    partx -a /dev/sdb sde sdc sdd   同步
    
    创建RAID:
        mdadm -C /dev/md0 -a yes -l5 -n3 -x1 /dev/sd{b,c,d,e}1
    用于查看创建的RAID设备:
        mdadm -D /dev/md0   
    创建文件格式类型:
        mkfs.ext4 /dev/md0 -L raid5     -L:添加卷标
    创建与挂载出:
        vim /etc/fstab
        UUID=6f246919-9fc5-4854-9982-8e7f11c16318 /mnt/raid     ext4    defaults 0 0
        
        mkdir /mnt/raid
        
        mount -a    启用
    注意:在使用RAID的时候建议最好生成一个RAID的配置文件以防下次停止使用时无法读取RAID设备
    如果要停止RAID设备时要先取消挂载才可操作
    
    测试一下RAID5的性能:本人使用的都是固态硬盘所以........
        写入的速度测试:
            [[email protected] ~]# dd if=/dev/zero of=/data/f1 bs=1M count=1024   本机的普通硬盘写入的性能     
            1024+0 records in
            1024+0 records out
            1073741824 bytes (1.1 GB) copied, 4.46875 s, 240 MB/s
            [[email protected] ~]# dd if=/dev/zero of=/mnt/raid/f1 bs=1M count=1024     RAID5写入的性能
            1024+0 records in
            1024+0 records out
            1073741824 bytes (1.1 GB) copied, 2.47991 s, 433 MB/s
        读的速度测试:
            [[email protected] ~]# dd if=/data/f1 of=/dev/null 本机的普通硬盘的读取性能
            2097152+0 records in
            2097152+0 records out
            1073741824 bytes (1.1 GB) copied, 4.17335 s, 257 MB/s
            [[email protected] ~]# dd if=/mnt/raid/f1 of=/dev/null     RAID5读取的性能
            2097152+0 records in
            2097152+0 records out
            1073741824 bytes (1.1 GB) copied, 2.14119 s, 501 MB/s
    那么如何停用和启用RAID呢????
        umount /mnt/raid/
        mdadm -S /dev/md0   停用RAID    
        mdadm -A /dev/md0  启用RAID
        mount -a     
    
    查看RAID状态:
        mdadm -D /dev/md0
        
    模拟一块硬盘损坏另外一个自动顶替
        mdadm /dev/md0 -f /dev/sdc1     模拟/dev/sdc1的磁盘损坏
        
        mdadm -D /dev/md0   查看状态
        Rebuild Status : 18% complete   备用硬盘自动启动填上去
        即便是坏了一硬盘数据还是可访问的有容错性
        
    如何将损坏/dev/sdc1的硬盘移走呢????
        mdadm /dev/md0 -r /dev/sdc1
    
    还是可以添加回来的 不过成为备用的
        mdadm /dev/md0 -a /dev/sdc1
    
    新加的硬盘一般都没有文件系统硬盘空间无法使用该如何解决呢???
        centos6:resize2fs /dev/md0 同步文件系统,只支持ext文件格式
        centos7:xfs_growfs /mnt/raid   同步文件系统,支持xfs文件格式   注意路径要写挂载的路径
    
    
    
LVM:逻辑卷管理
    允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小
    允许在多个物理设备间重新组织文件系统
        将设备指定为物理卷
        用一个或者多个物理卷来创建一个卷组
        物理卷是用固定大小的物理区域(Physical Extent,PE)来定义的
        在物理卷上创建的逻辑卷
        是由物理区域(PE)组成
        可以在逻辑卷上创建文件系统
        
LVM介绍
LVM: Logical Volume Manager,Version: 2
dm: device mapper:将一个或多个底层块设备组织成一个逻辑设备的模块
设备名:/dev/dm-#
软链接:
    /dev/mapper/VG_NAME-LV_NAME
    /dev/mapper/vol0-root  
    /dev/VG_NAME/LV_NAME
    /dev/vol0/root
    
    
LVM更改文件系统的容量
    LVM可以弹性的更改LVM的容量
    通过交换PE来进行资料的转换,将原来LV内的PE转移到其他的设备中以降低LV的容量,或将其他设备中的PE加到LV中以加大容量
    
pv管理工具
    显示pv信息
        pvs:简要pv信息显示
        pvdisplay
    创建pv
        pvcreate /dev/DEVICE
        
vg管理工具
    显示卷组
        vgs:显示卷组的空间
        vgdisplay:显示详细的卷组信息
    创建卷组
        vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
    管理卷组
        vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
        vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
    删除卷组
        先做pvmove,再做vgremove
        
lv管理工具
    显示逻辑卷
        lvs
        Lvdisplay
    创建逻辑卷
        lvcreate -L #[mMgGtT] -n NAME VolumeGroup
        lvcreate -l 60%VG -n mylvtestvg
        lvcreate -l 100%FREE -n yourlvtestvg
    删除逻辑卷
        lvremove/dev/VG_NAME/LV_NAME
    重设文件系统大小
        fsadm[options] resize device [new_size[BKMGTEP]]
        resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size
        
    
扩展和缩减逻辑卷
    扩展逻辑卷:
        lvextend-L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
        resize2fs /dev/VG_NAME/LV_NAME
        lvresize-r -l +100%FREE /dev/VG_NAME/LV_NAME
    缩减逻辑卷:
        umount/dev/VG_NAME/LV_NAME
        e2fsck -f /dev/VG_NAME/LV_NAME
        resize2fs /dev/VG_NAME/LV_NAME #[mMgGt]
        lvreduce-L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
        mount
        
跨主机迁移卷组
    源计算机上
        1 在旧系统中,umount所有卷组上的逻辑卷
        2 vgchange–a n vg0
            lvdisplay
        3 vgexportvg0
            pvscan
            vgdisplay
            拆下旧硬盘
    在目标计算机上
        4 在新系统中安装旧硬盘,并vgimportvg0.
        5 vgchange–ay vg0
        6 mount所有卷组上的逻辑卷
        
创建逻辑卷示例
    创建物理卷
        pvcreate /dev/sda3
    为卷组分配物理卷
        vgcreate vg0 /dev/sda3
    从卷组创建逻辑卷
        lvcreate -L 256M -n data vg0
        mke2fs -j /dev/vg0/data
    mount /dev/vg0/data /mnt/data
    
逻辑卷管理器快照
    快照是特殊的逻辑卷,它是在生成快照时存在的逻辑卷的准确拷贝
    对于需要备份或者复制的现有数据临时拷贝以及其它操作来说,快照是最合适的选择
    快照只有在它们和原来的逻辑卷不同时才会消耗空间
    在生成快照时会分配给它一定的空间,但只有在原来的逻辑卷或者快照有所改变才会使用这些空间
    当原来的逻辑卷中有所改变时,会将旧的数据复制到快照中。
    快照中只含有原来的逻辑卷中更改的数据或者自生成快照后的快照中更改的数据
    建立快照的卷大小只需要原始逻辑卷的15%~20%就够了,也可以使用lvextend放大快照
    快照就是将当时的系统信息记录下来,就好像照相一般,若将来有任何数据改动了,则原始数据会被移动到快照区,没有改动的区域则由快照区和文件系统共享
    由于快照区与原本的LV共用很多PE的区块,因此快照与被快照的LV必须在同一个VG中.系统恢复的时候的文件数量不能高于快照区的实际容量
    
    
使用LVM快照
    为现有逻辑卷创建快照
        lvcreate-l 64 -s -n data-snapshot -p r /dev/vg0/data
    挂载快照
        mkdir-p /mnt/snap
        mount -o ro/dev/vg0/data-snapshot /mnt/snap
    恢复快照
        umount/dev/vg0/data-snapshot
        umount/dev/vg0/data
        lvconvert--merge /dev/vg0/data-snapshot
    删除快照
        umount/mnt/databackup
        lvremove/dev/vg0/databackup
    
    
小实例:
    在硬盘上做两个LVM的分区/dev/sdb1、/dev/sdc1大小各2G
      将普通的硬盘分区变成物理卷呢:
        pvcreate:用于创建物理卷
        pvdisplay:查看物理卷看比较详细
        pvs   用于查看物理卷
        
        pvcreate /dev/sdb1   创建物理卷
        pvcreate /dev/sdc1   创建物理卷
    
      创建卷组:
        vgs:查看现有的卷组
        vgdisplay:查看更详细的卷组
        
        vgcreate -s 18M vg1 /dev/sdb1
        vgcreate -s 18M vg2 /dev/sdc1
      
      创建逻辑卷:
        lvcreate -n lv1 -l 100 vg1
        lvdisplay:查看创建的逻辑卷
        
      将剩余的逻辑卷全部用完:
        lvcreate -n lv2 -l 100%FREE vg1
            100%FREE:将分区里的剩余空间全部用完
        
      创建文件格式:
        mkfs.ext4 /dev/vg1/lv1
        mkfs.ext4 /dev/vg1/lv2
        
      挂载设备:
        UUID=d60bf3e2-dede-4507-9e58-c16a46c45a63 /mnt/lv1      ext4    defaults 0 0
        UUID=3894bb11-c5e7-4be5-b4c3-ef4ce4461b27 /mnt/lv2      ext4    defaults 0 0
        
        mkdir /mnt/lv1
        mkdir /mnt/lv2
        mount -a    启用挂载
        
    测试性能:
        [[email protected] ~]# dd if=/dev/zero of=/mnt/lv1/f1 bs=1M count=10241024+0 records in
        1024+0 records out
        1073741824 bytes (1.1 GB) copied, 9.09417 s, 118 MB/s
        
    如遇到逻辑卷空间不足如何增加空间:
        首先加一块新的硬盘:
            在添加硬盘之后须执行:我加了一个20G的新硬盘名称:/dev/sdd
                echo '- - -' > /sys/class/scsi_host/host2/scan  扫描识别新添加的硬盘
        
        直接用整块硬盘做,可直接做成物理卷:
            pvcreate /dev/sdd
        
    添加进之前的vg1卷组:
            [[email protected] ~]# vgextend vg1 /dev/sdd
              Volume group "vg1" successfully extended
            [[email protected] ~]# pvs 或vgdisplay  用于查询
              PV         VG   Fmt  Attr PSize  PFree
              /dev/sdb1  vg1  lvm2 a--u  2.00g     0
              /dev/sdc1  vg1  lvm2 a--u  2.00g     0
              /dev/sdd   vg1  lvm2 a--u 19.99g 19.99g
        
    将刚添加的新硬盘添加进/mnt/lv1:
            lvextend -L +10G /dev/vg1/lv1
            
            注意:添加完之后df中的添加的10G空间释放必须要同步一下即可:
                resize2fs /dev/vg1/lv1
            
            其实也可以直接带参数选项:
                lvextend -r -l +100%FREE /dev/vg1/lv1
                    -r:同步
                    -l +100%FREE:硬盘下的剩余空间
                    
    当遇到逻辑卷空间比较大时可以缩减的centos7是不行的用于centos6:
        缩减5G:
            e2fsck -f /dev/vg1/lv1  先检查完整性才可执行缩减
            resize2fs /dev/vg1/lv1 5G
        
    缩减逻辑卷:注意可能会损坏数据
            lvreduce -L 5G /dev/vg1/lv1
            mount -a 将/mnt/lv1挂载回去

原文地址:http://blog.51cto.com/001230/2120575

时间: 2024-12-13 10:13:05

RAID和逻辑卷管理器(LVM)的相关文章

mount挂载,dd 工具,配置配额系统,RAID阵列,逻辑卷管理器LVM

mount mount挂载 vim /etc/fstab 将常用的挂载的设备写入系统表中 文件挂载配置文件 /etc/fstab /etc/fstab每行定义一个要挂载的文件系统: 要挂载的设备或伪文件系统 挂载点 文件系统类型 挂载选项 转储频率 自检次序 要挂载的设备或伪文件系统: 设备文件.LABEL(LABEL="").UUID(UUID="").伪文件系统名称(proc, sysfs) 挂载选项:defaults 转储频率:0:不做备份 每天转储 每隔一天

Linux逻辑卷管理器(LVM)

LVM基础 通过使用Linux的逻辑卷管理器(Logical Volume Manager, LVM),用户可以在系统运行时动态调整文件系统的大小,把数据从一块硬盘重定位到另一块硬盘,也可以提高I/O操作的性能,以及提供冗余保护,它的快照功能允许用户对逻辑卷进行实时的备份. 对一般用户来讲,使用最多的是动态调整文件系统大小的功能.这样,你在分区时就不必为如何设置分区的大小而烦恼,只要在硬盘中预留出部分空闲空间,然后根据系统的使用情况,动态调整分区大小. 在LVM中,主要有三个概念: 物理卷(Ph

逻辑卷管理器LVM

1.逻辑卷管理器LVM 允许对卷进行方便操作的抽象层,包括重新设定文件系统大小. 允许在多个物理设备间重新组织文件系统. 将设备指定为物理卷 用一个或多个物理卷来创建一个卷组 物理卷是用固定大小的物理区域(PE) 来定义的, 在物理卷上创建逻辑卷是由物理区域(PE)组成 可以在逻辑卷上创建文件系统. 2.LVM介绍 LVM:logical volume manager , version:2 dm:device mapper:将一个或多个底层块设备组织成一个逻辑设备的模块. 设备名: /dev/

磁盘空间的扩展与减少------逻辑卷管理器 LVM

一.基本理论知识 LVM是 Logical Volume Manager(逻辑卷管理)的简写,是Linux环境下对磁盘分区进行管理的一种机制.逻辑卷管理通过将底层物理硬盘抽象封装起来,以逻辑卷的形式表现给上层系统,逻辑卷的大小可以动态调整,而且不会丢失现有数据.新加入的硬盘也不会改变现有上层的逻辑卷.作为一种动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性. 二.lvm 基本术语 物理区域: PE(physical extend)默认为4MB的基本块 .物理卷是用固定大小的PE来定义的. 

LVM逻辑卷管理器 基础

一.LVM简介 逻辑卷管理器LVM(Logcal Volume Manager),LVM可以弹性的调整文件系统的容量,不必要再去烦恼文件系统空间不够的问题.LVM的实现是将几个物理分区(或磁盘)通过软件组合成为一块看起来是独立的大磁盘(VG),然后将这块大磁盘再经过分成可使用分区(LV),最终就能够挂载使用. 以下是LVM一些名词的解释,解释来自百度LVM: PhysicalStorageMedia 物理存储设备 指系统的物理存储设备:磁盘,如:/dev/hda./dev/sda等,是存储系统最

LVM逻辑卷管理器

逻辑卷管理器lvm   (logical   volume   manager) 作用:将底层的多个物理磁盘或者物理磁盘上得分区,组合在一起,形成一个硬盘组(硬盘池),然后通过用户空间的lvm的管理工具.去配置一个mapper  rule,lvm管理工具通过这个规则,就可以正常的访问最终的磁盘. 0.准备 假如有一块磁盘:/dev/sdb  68G 分区: fdisk  /dev/sdb ,分成3个分区.  /dev/sdb1 /dev/sdb2  /dev/sdb3 最后转换为LVM的磁盘标识

RAID(独立冗余磁盘阵列)与LVM(逻辑卷管理器)

RAID(独立冗余磁盘阵列)RAID 0:数据依次写入不同的硬盘,提升速度,但不具备数据备份和错误修复功能.RAID 1:将同一个数据分别写入2个硬盘(一个作为在用,一个作为备份),提升安全性,成本加大,速度不变.RAID 5:将硬盘设备的数据奇偶校验信息保存到其他硬盘设备中,出问题后通过再其他盘的parity重建损坏数据.成本有所增加,安全性提升,速度有所提升.RAID 10:通过RAID1和RAID0组合,采用4个硬盘组成,每2个盘组成一个RAID1,然后用组成的RAID1,组成RAID10

linux之逻辑卷管理器(lvm)

在实际生活中,我们往往会遇到这种情况,我们把买来的一块儿硬盘分区成好多磁盘,这样方便我们分类文件,但是同样也出现了一些问题,就是如果该分区存满了怎么办?或者我们想把一块磁盘再次细分,这些问题统统可以用linux下一个强大的管理工具解决,那就是lvm. 那么什么是lvm呢?lvm即:Logical Volum Manager(逻辑卷管理器) 那么一个lvm到底要怎么实现呢? lvm由三部分组成:pv(物理卷) vg(逻辑卷组) lv(逻辑卷) 简单了说,就是把多块物理盘虚拟成一块盘或者把一块物理盘

LVM(逻辑卷管理器)部署

物理卷 -- Physical Volume -- PV 卷组  -- Volume Group  -- VG 逻辑卷 -- Logical Volume -- LV 1.硬盘设备管理技术虽然能够有效的提高硬盘设备的读写速度以及数据的安全性,但是在硬盘分好区或者部署为 RAID 的磁盘阵列之后,再想修改硬盘分区大小就不容易了.当用户想要随着实际需求的变化调整硬盘分区的大小时,会受到硬盘“灵活性”的限制,这是需要用到另一一项非常普及的硬盘设备资源管理技术——LVM(逻辑卷管理器),LVM 可以允许