章节简述:

您好,此章节为新增加的知识内容,正在努力的排版完善,预习2016年9月中旬完成,感谢您的支持,QQ群:340829。

7.1  磁盘冗余阵列
1988年由加利福尼亚大学伯克利分校发表的文章首次提到并定义了RAID,当今CPU性能每年可提升30%-50%但硬盘仅提升7%,渐渐的已经成为计算机整体性能的瓶颈,并且为了避免硬盘的突然损坏导致数据丢失还加入了冗余备份机制。
RAID的早先设计理念为"redundant array of Inexpensive disks"即不贵的硬盘组,而现在的定义是"Redundant Array of Independent Disks"即独立的硬盘组,作用是防止硬盘物理损坏以及增加存储设备的吞吐量。RAID常见的组合有01510
RAID0:需要至少两块(含)硬盘,可以有效的提高硬盘的性能和吞吐量,但没有数据的冗余和错误修复能力。
将多块硬盘通过硬件或软件的方式串联在一起,成为一个大的卷集,将数据依次写入到各个硬盘中,这样性能会极大提升,但若任意一块硬盘故障则整个系统的数据都会受到破坏。
RAID1:需要至少两块(含)硬盘,可以有效的提高数据资料的安全性和可修复性,但成本却提高了。
实现原来是在数据写入硬盘时也会在另外一块闲置的硬盘上生成镜像文件,在不影响性能的情况下最大限度保证数据资料的可靠性,只要在一对镜像盘中还有一块硬盘可以使用,那么数据也不会丢失,具有很好的硬盘冗余能力,虽然对数据来讲绝对的安全,但成本却明显增加,磁盘利用率仅为50%。
RAID5:需要至少三块(含)硬盘,兼顾存储性能、数据安全和储存成本。
 
如上图所示"parity"块中保存的是其他硬盘数据的奇偶校验信息(并非其他硬盘的数据),以数据的奇偶校验信息来保证数据的安全,RAID5不以单独的硬盘来存放数据的奇偶校验信息,而是保存在各个磁盘上。
这样当任何一个硬盘损坏都可以根据其他硬盘上的奇偶校验信息来尝试重建损坏的数据,性能也很高,兼顾了存储性能、数据安全和存储成本,可以看作是RAID0与RAID1的折中方案。
 
RAID10:需要至少四块(含)硬盘,兼具速度和安全性,但成本很高。
 
继承了RAID0的快速与RAID1的安全,RAID1在这里提供了冗余备份的阵列,而RAID0则负责数据的读写阵列。
因这种结构的成本高,一般用于存放要求速度与差错控制的数据。
 
mdadm命令用于管理系统软件RAID硬盘阵列,格式为:"mdadm [模式] <RAID设备名称> [选项] [成员设备名称]"。
mdadm管理RAID阵列的动作有:
编辑
名称 作用
Assemble 将设备加入到以前定义的阵列
Build 创建一个没有超级块的阵列
Create 创建一个新的阵列,每个设备具有超级块。
Manage 管理阵列(如添加和删除)。
Misc 允许单独对阵列中的某个设备进行操作(如停止阵列)。
Follow or Monitor 监控状态。
Grow 改变阵列的容量或设备数目。
mdadm管理RAID阵列的参数有:
编辑
参数 作用
-a 检测设备名称
-n 指定设备数量
-l 指定raid级别
-C 创建
-v 显示过程
-f 模拟设备损坏
-r 移除设备
-Q 查看摘要信息
-D 查看详细信息
-S 停止阵列
模拟训练:RAID10配置流程:
第1步:在虚拟机中再添加4块硬盘:
第2步:使用mdadm命令创建RAID10,名称为"/dev/md0"。

-C代表创建操作,-v显示创建过程,-a yes检查RAID名称,-n是用到的硬盘个数,-l是定义RAID的级别而后面写上要加入阵列的硬盘名称。

  1. [root@linuxprobe ~]#mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
  2. mdadm: layout defaults to n2
  3. mdadm: layout defaults to n2
  4. mdadm: chunk size defaults to 512K
  5. mdadm: size set to 20954624K
  6. mdadm: Defaulting to version 1.2 metadata
  7. mdadm: array /dev/md0 started.

第3步:格式化并挂载使用

将RAID磁盘阵列格式化为ext4格式:

  1. [root@linuxprobe ~]# mkfs.ext4 /dev/md0
  2. mke2fs 1.42.9 (28-Dec-2013)
  3. Filesystem label=
  4. OS type: Linux
  5. Block size=4096 (log=2)
  6. Fragment size=4096 (log=2)
  7. Stride=128 blocks, Stripe width=256 blocks
  8. 2621440 inodes, 10477312 blocks
  9. 523865 blocks (5.00%) reserved for the super user
  10. First data block=0
  11. Maximum filesystem blocks=2157969408
  12. 320 block groups
  13. 32768 blocks per group, 32768 fragments per group
  14. 8192 inodes per group
  15. Superblock backups stored on blocks:
  16. 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
  17. 4096000, 7962624
  18. Allocating group tables: done
  19. Writing inode tables: done
  20. Creating journal (32768 blocks): done
  21. Writing superblocks and filesystem accounting information: done

创建挂载目录:

  1. [root@linuxprobe ~]# mkdir /RAID

进行文件系统的挂载:

  1. [root@linuxprobe ~]# mount /dev/md0 /RAID

查看磁盘挂载信息:

  1. [root@linuxprobe ~]# df -h
  2. Filesystem Size Used Avail Use% Mounted on
  3. /dev/mapper/rhel-root 18G 3.0G 15G 17% /
  4. devtmpfs 905M 0 905M 0% /dev
  5. tmpfs 914M 84K 914M 1% /dev/shm
  6. tmpfs 914M 8.9M 905M 1% /run
  7. tmpfs 914M 0 914M 0% /sys/fs/cgroup
  8. /dev/sr0 3.5G 3.5G 0 100% /media/cdrom
  9. /dev/sda1 497M 119M 379M 24% /boot
  10. /dev/md0 40G 49M 38G 1% /RAID

将此磁盘阵列挂载信息设置为重启后也依然生效:

  1. [root@linuxprobe ~]# echo "/dev/md0 /RAID ext4 defaults 0 0" >> /etc/fstab

第4步:查看/dev/md0设备信息

参数-D查看RAID阵列的详细信息:

  1. [root@linuxprobe ~]# mdadm -D /dev/md0
  2. /dev/md0:
  3. Version : 1.2
  4. Creation Time : Tue May 5 07:43:26 2015
  5. Raid Level : raid10
  6. Array Size : 41909248 (39.97 GiB 42.92 GB)
  7. Used Dev Size : 20954624 (19.98 GiB 21.46 GB)
  8. Raid Devices : 4
  9. Total Devices : 4
  10. Persistence : Superblock is persistent
  11. Update Time : Tue May 5 07:46:59 2015
  12. State : clean
  13. Active Devices : 4
  14. Working Devices : 4
  15. Failed Devices : 0
  16. Spare Devices : 0
  17. Layout : near=2
  18. Chunk Size : 512K
  19. Name : localhost.localdomain:0 (local to host localhost.localdomain)
  20. UUID : cc9a87d4:1e89e175:5383e1e8:a78ec62c
  21. Events : 17
  22. Number Major Minor RaidDevice State
  23. 0 8 16 0 active sync /dev/sdb
  24. 1 8 32 1 active sync /dev/sdc
  25. 2 8 48 2 active sync /dev/sdd
  26. 3 8 64 3 active sync /dev/sde

第5步:模拟有1块硬盘损坏的情况
使用mdadm的-f参数将/dev/sdb移出阵列:

  1. [root@linuxprobe ~]# mdadm /dev/md0 -f /dev/sdb
  2. mdadm: set /dev/sdb faulty in /dev/md0

再看下阵列的状态(此时的/dev/sdb状态被是移除,失败状态):

  1. [root@linuxprobe ~]# mdadm -D /dev/md0
  2. /dev/md0:
  3. Version : 1.2
  4. Creation Time : Fri May 8 08:11:00 2015
  5. Raid Level : raid10
  6. Array Size : 41909248 (39.97 GiB 42.92 GB)
  7. Used Dev Size : 20954624 (19.98 GiB 21.46 GB)
  8. Raid Devices : 4
  9. Total Devices : 4
  10. Persistence : Superblock is persistent
  11. Update Time : Fri May 8 08:27:18 2015
  12. State : clean, degraded
  13. Active Devices : 3
  14. Working Devices : 3
  15. Failed Devices : 1
  16. Spare Devices : 0
  17. Layout : near=2
  18. Chunk Size : 512K
  19. Name : linuxprobe.com:0 (local to host linuxprobe.com)
  20. UUID : f2993bbd:99c1eb63:bd61d4d4:3f06c3b0
  21. Events : 21
  22. Number Major Minor RaidDevice State
  23. 0 0 0 0 removed
  24. 1 8 32 1 active sync /dev/sdc
  25. 2 8 48 2 active sync /dev/sdd
  26. 3 8 64 3 active sync /dev/sde
  27. 0 8 16 - faulty /dev/sdb

第6步:损坏后依然正常使用

因为RAID10级别能够允许一组RAID1硬盘中存在一个故障盘而不影响使用,所以依然可以正常的创建或删除文件~

现在就把新的硬盘添加进去吧,当然也可以让硬盘sdb恢复使用:请重启后执行“ mdadm /dev/md0 -a /dev/sdb”。

第7步:设置冗余备份磁盘

现在发现了一个问题没?运维人员需要在硬盘硬件出现故障后手工添加新的磁盘进去,这样会不会比较不方便?
假如初始化RAID5阵列时直接给予4块硬盘,其中1块硬盘设备用于在阵列某块磁盘故障时自动的替换上去,这样很棒吧!
先将磁盘系统卸载:

  1. [root@linuxprobe ~]# umount /dev/md0

停止该阵列设备,彻底的停用:

  1. [root@linuxprobe ~]# mdadm -S /dev/md0
  2. mdadm: stopped /dev/md0

现在该阵列已经找不到了:

  1. [root@linuxprobe ~]# mdadm -D /dev/md0
  2. mdadm: cannot open /dev/md0: No such file or directory

创建RAID5并设置1块备份故障盘:

  1. [root@linuxprobe ~]# mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde
  2. mdadm: layout defaults to left-symmetric
  3. mdadm: layout defaults to left-symmetric
  4. mdadm: chunk size defaults to 512K
  5. mdadm: /dev/sdb appears to be part of a raid array:
  6. level=raid10 devices=4 ctime=Fri May 8 08:11:00 2015
  7. mdadm: /dev/sdc appears to be part of a raid array:
  8. level=raid10 devices=4 ctime=Fri May 8 08:11:00 2015
  9. mdadm: /dev/sdd appears to be part of a raid array:
  10. level=raid10 devices=4 ctime=Fri May 8 08:11:00 2015
  11. mdadm: /dev/sde appears to be part of a raid array:
  12. level=raid10 devices=4 ctime=Fri May 8 08:11:00 2015
  13. mdadm: size set to 20954624K

此处需要输入y,确认创建这个阵列:

  1. Continue creating array? y
  2. mdadm: Defaulting to version 1.2 metadata
  3. mdadm: array /dev/md0 started.

查看下阵列的详细信息(Spare Devices数量为1):

  1. [root@linuxprobe ~]# mdadm -D /dev/md0
  2. /dev/md0:
  3. Version : 1.2
  4. Creation Time : Fri May 8 09:20:35 2015
  5. Raid Level : raid5
  6. Array Size : 41909248 (39.97 GiB 42.92 GB)
  7. Used Dev Size : 20954624 (19.98 GiB 21.46 GB)
  8. Raid Devices : 3
  9. Total Devices : 4
  10. Persistence : Superblock is persistent
  11. Update Time : Fri May 8 09:22:22 2015
  12. State : clean
  13. Active Devices : 3
  14. Working Devices : 4
  15. Failed Devices : 0
  16. Spare Devices : 1
  17. Layout : left-symmetric
  18. Chunk Size : 512K
  19. Name : linuxprobe.com:0 (local to host linuxprobe.com)
  20. UUID : 44b1a152:3f1809d3:1d234916:4ac70481
  21. Events : 18
  22. Number Major Minor RaidDevice State
  23. 0 8 16 0 active sync /dev/sdb
  24. 1 8 32 1 active sync /dev/sdc
  25. 4 8 48 2 active sync /dev/sdd
  26. 3 8 64 - spare /dev/sde

将磁盘阵列格式化为ext4系统:

  1. [root@linuxprobe ~]# mkfs.ext4 /dev/md0
  2. mke2fs 1.42.9 (28-Dec-2013)
  3. Filesystem label=
  4. OS type: Linux
  5. Block size=4096 (log=2)
  6. Fragment size=4096 (log=2)
  7. Stride=128 blocks, Stripe width=256 blocks
  8. 2621440 inodes, 10477312 blocks
  9. 523865 blocks (5.00%) reserved for the super user
  10. First data block=0
  11. Maximum filesystem blocks=2157969408
  12. 320 block groups
  13. 32768 blocks per group, 32768 fragments per group
  14. 8192 inodes per group
  15. Superblock backups stored on blocks:
  16. 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
  17. 4096000, 7962624
  18. Allocating group tables: done
  19. Writing inode tables: done
  20. Creating journal (32768 blocks): done
  21. Writing superblocks and filesystem accounting information: done

因为前面设置过fstab文件,所以现在可以直接给挂载:

  1. [root@linuxprobe ~]# mount -a

将/dev/sdb设备设置为故障并移出阵列:

  1. [root@linuxprobe ~]# mdadm /dev/md0 -f /dev/sdb
  2. mdadm: set /dev/sdb faulty in /dev/md0

再来看下阵列的详细信息(此时硬盘sde直接顶替上去了):

  1. [root@linuxprobe ~]# mdadm -D /dev/md0
  2. /dev/md0:
  3. Version : 1.2
  4. Creation Time : Fri May 8 09:20:35 2015
  5. Raid Level : raid5
  6. Array Size : 41909248 (39.97 GiB 42.92 GB)
  7. Used Dev Size : 20954624 (19.98 GiB 21.46 GB)
  8. Raid Devices : 3
  9. Total Devices : 4
  10. Persistence : Superblock is persistent
  11. Update Time : Fri May 8 09:23:51 2015
  12. State : active, degraded, recovering
  13. Active Devices : 2
  14. Working Devices : 3
  15. Failed Devices : 1
  16. Spare Devices : 1
  17. Layout : left-symmetric
  18. Chunk Size : 512K
  19. Rebuild Status : 0% complete
  20. Name : linuxprobe.com:0 (local to host linuxprobe.com)
  21. UUID : 44b1a152:3f1809d3:1d234916:4ac70481
  22. Events : 21
  23. Number Major Minor RaidDevice State
  24. 3 8 64 0 spare rebuilding /dev/sde
  25. 1 8 32 1 active sync /dev/sdc
  26. 4 8 48 2 active sync /dev/sdd
  27. 0 8 16 - faulty /dev/sdb

出现问题?大胆提问!

因读者们硬件不同或操作错误都可能导致实验配置出错,请耐心再仔细看看操作步骤吧,不要气馁~

Linux技术交流请加A群:560843(),B群:340829(推荐),点此查看全国群

*本群特色:通过口令验证确保每一个群员都是《Linux就该这么学》的读者,答疑更有针对性,不定期免费领取定制礼品。

7.2 逻辑卷管理器
当用户根据实际情况需要对分区增加、减小等调整时,经常会受到硬盘“灵活性”的限制,很不方便。
逻辑卷管理器则是在磁盘分区与文件系统之间添加的逻辑层,提供一个抽象的卷组,使得管理者可以忽略底层磁盘布局,从而实现对分区的灵活动态调整,这毫不夸张,所以红帽RHEL7系统已经默认启用了LVM(Logical Volume Manager)机制。
物理卷(PV,Physical Volume): 整个硬盘设备或使用fdisk命令建立的硬盘分区。
卷组(VG,Volume Group)       :由一个或多个物理卷(PV)组成的整体
逻辑卷(LV,Logical Volume)  :从卷组(VG)出切割出的空间来用于创建文件系统,大小由PE的个数决定。
              基本单元(PE,Physical Extent)默认为4MB的基本块。
编辑
功能/命令 物理卷管理 卷组管理 逻辑卷管理
扫描 pvscan vgscan lvscan
建立 pvcreate vgcreate lvcreate
显示 pvdisplay vgdisplay lvdisplay
删除 pvremove vgremove lvremove
扩展   vgextend lvextend
模拟训练A:创建一个容量为150M的逻辑卷vo,格式化为XFS并挂载到/mnt/xfs。
第1步:在虚拟机中添加1块用来做逻辑卷实验的硬盘
请您按照下面的幻灯片逐步操作,可点击图片两侧箭头或下方小圆点“○”切换步骤。

  • 第2步:选择磁盘。
  • 第3步:选择磁盘类型。
  • 第4步:选择创建新的磁盘。
  • 第5步:设置磁盘的大小。
  • 第6步:默认的磁盘名称即可。
  • 第7步:成功添加的硬盘出现在列表中。
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6

第2步:创建一个大小为300M的分区(sdb1),标签为lvm:

对硬盘sdb进行分区:

  1. [root@linuxprobe ~]# fdisk /dev/sdb
  2. Device does not contain a recognized partition table

创建新的分区:

  1. Command (m for help): n

类型为主分区:

  1. Partition type:
  2. p primary (0 primary, 0 extended, 4 free)
  3. e extended
  4. Select (default p): p

分区号为1:

  1. Partition number (1-4, default 1): 1

直接写“+300M”即可生成大小为300M的分区:

  1. First sector (2048-41943039, default 2048):
  2. Using default value 2048
  3. Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +300M
  4. Partition 1 of type Linux and of size 300 MiB is set

查看下分区信息:

  1. Command (m for help): p
  2. Device Boot Start End Blocks Id System
  3. /dev/sdb1 2048 616447 307200 83 Linux

修改分区类型:

  1. Command (m for help): t
  2. Selected partition 1

修改分区类型为lvm(代码是8e):

  1. Hex code (type L to list all codes): 8e
  2. Changed type of partition 'Linux' to 'Linux LVM'

再看下分区信息:

  1. Command (m for help): p
  2. Device Boot Start End Blocks Id System
  3. /dev/sdb1 2048 309247 153600 8e Linux LVM

确认无误,写入分区表信息:

  1. Command (m for help): w
  2. The partition table has been altered!
  3. Calling ioctl() to re-read partition table.
  4. Syncing disks.

让内核同步分区信息(此步骤仅在没有找到分区设备的情况下才需要执行,非必要动作。):

  1. [root@linuxprobe ~]# partprobe

第3步:启用LVM并创建vo逻辑卷并格式化为ext4格式
将新建的分区设置为物理卷:

  1. [root@linuxprobe ~]# pvcreate /dev/sdb1
  2. Physical volume "/dev/sdb1" successfully created

将物理卷加入卷组:

  1. [root@linuxprobe ~]# vgcreate rhcsa /dev/sdb1
  2. Volume group "rhcsa" successfully created

查看卷组信息:

  1. [root@linuxprobe ~]# vgdisplay
  2. --- Volume group ---
  3. VG Size 296.00 MiB
  4. PE Size 4.00 MiB
  5. Total PE 74
  6. Alloc PE / Size 0 / 0
  7. Free PE / Size 74 / 296.00 MiB
  8. VG UUID 8hLPQU-Tc6f-PMsa-4tq5-iT0p-vSbI-sOafqG

生成大小为37个PE的逻辑卷(37*4MiB为148M):

  1. [root@linuxprobe ~]# lvcreate -n vo -l 37 rhcsa
  2. Logical volume "vo" created

格式化为ext4:

  1. [root@linuxprobe ~]# mkfs.ext4 /dev/rhcsa/vo
  2. Writing superblocks and filesystem accounting information: done

创建一个名为/rhcsa的目录用于挂载该逻辑卷。

  1. [root@linuxprobe ~]# mkdir /rhcsa

挂载硬盘设备:

  1. [root@linuxprobe ~]# mount /dev/rhcsa/vo /rhcsa

查看挂载信息(rhcsa-vo为140M是合理取值):

  1. [root@linuxprobe ~]# df -h
  2. Filesystem Size Used Avail Use% Mounted on
  3. /dev/mapper/rhel-root 18G 3.0G 15G 17% /
  4. devtmpfs 905M 0 905M 0% /dev
  5. tmpfs 914M 140K 914M 1% /dev/shm
  6. tmpfs 914M 8.9M 905M 1% /run
  7. tmpfs 914M 0 914M 0% /sys/fs/cgroup
  8. /dev/sda1 497M 119M 379M 24% /boot
  9. /dev/sr0 3.5G 3.5G 0 100% /run/media/root/RHEL-7.0 Server.x86_64
  10. /dev/mapper/rhcsa-vo 140M 1.6M 128M 2% /rhcsa
模拟训练B:将上个实验中的逻辑卷vo容量扩展到290M。

若要对LVM进行调整,一定要先卸载:

  1. [root@linuxprobe ~]# umount /rhcsa

将逻辑卷扩展到290M:

  1. [root@linuxprobe ~]# lvextend -L 290M /dev/rhcsa/vo
  2. Rounding size to boundary between physical extents: 292.00 MiB
  3. Extending logical volume vo to 292.00 MiB
  4. Logical volume vo successfully resized

检查磁盘完整性,重置硬盘容量:

  1. [root@linuxprobe ~]# e2fsck -f /dev/rhcsa/vo
  2. /dev/rhcsa/vo: 11/38000 files (0.0% non-contiguous), 10453/151552 blocks\
  3. [root@linuxprobe ~]# resize2fs /dev/rhcsa/vo
  4. Resizing the filesystem on /dev/rhcsa/vo to 299008 (1k) blocks.
  5. The filesystem on /dev/rhcsa/vo is now 299008 blocks long.

重新挂载硬盘设备:

  1. [root@linuxprobe ~]# mount /dev/rhcsa/vo /rhcsa

看到挂载信息(当前逻辑卷大小已为279M):

  1. [root@linuxprobe ~]# df -h
  2. Filesystem Size Used Avail Use% Mounted on
  3. /dev/mapper/rhel-root 18G 3.0G 15G 17% /
  4. devtmpfs 905M 0 905M 0% /dev
  5. tmpfs 914M 140K 914M 1% /dev/shm
  6. tmpfs 914M 8.9M 905M 1% /run
  7. tmpfs 914M 0 914M 0% /sys/fs/cgroup
  8. /dev/sda1 497M 119M 379M 24% /boot
  9. /dev/sr0 3.5G 3.5G 0 100% /run/media/root/RHEL-7.0 Server.x86_64
  10. /dev/mapper/rhcsa-vo 279M 2.1M 259M 1% /rhcsa

模拟训练C:将上个实验中的逻辑卷vo容量减小到120M。

卸载文件系统:

  1. [root@linuxprobe ~]# umount /rhcsa

检查文件系统的完整性:

  1. [root@linuxprobe ~]# e2fsck -f /dev/rhcsa/vo
  2. e2fsck 1.42.9 (28-Dec-2013)
  3. Pass 1: Checking inodes, blocks, and sizes
  4. Pass 2: Checking directory structure
  5. Pass 3: Checking directory connectivity
  6. Pass 4: Checking reference counts
  7. Pass 5: Checking group summary information
  8. /dev/rhcsa/vo: 11/74000 files (0.0% non-contiguous), 15507/299008 blocks

将逻辑卷的减小到120M:

  1. [root@linuxprobe ~]# resize2fs /dev/rhcsa/vo 120M
  2. resize2fs 1.42.9 (28-Dec-2013)
  3. Resizing the filesystem on /dev/rhcsa/vo to 122880 (1k) blocks.
  4. The filesystem on /dev/rhcsa/vo is now 122880 blocks long.

使用lvreduce命令将文件系统调整为120M:

  1. [root@linuxprobe ~]# lvreduce -L 120M /dev/rhcsa/vo
  2. WARNING: Reducing active logical volume to 120.00 MiB
  3. THIS MAY DESTROY YOUR DATA (filesystem etc.)
  4. Do you really want to reduce vo? [y/n]: y
  5. Reducing logical volume vo to 120.00 MiB
  6. Logical volume vo successfully resized

重新挂载文件系统:

  1. [root@linuxprobe ~]# mount /dev/rhcsa/vo /rhcsa

查看挂载信息,(逻辑卷已经变成113M):

  1. [root@linuxprobe ~]# df -h
  2. Filesystem Size Used Avail Use% Mounted on
  3. /dev/mapper/rhel-root 18G 3.7G 14G 21% /
  4. devtmpfs 734M 0 734M 0% /dev
  5. tmpfs 742M 140K 742M 1% /dev/shm
  6. tmpfs 742M 8.8M 734M 2% /run
  7. tmpfs 742M 0 742M 0% /sys/fs/cgroup
  8. /dev/sr0 3.5G 3.5G 0 100% /media/cdrom
  9. /dev/sda1 497M 119M 379M 24% /boot
  10. /dev/mapper/rhcsa-vo 113M 1.6M 103M 2% /rhcsa

模拟训练D:使用逻辑卷快照功能

LVM的逻辑卷快照功能可以将逻辑卷的数据保存为备份、以及快速的数据恢复。
查看到逻辑卷详细信息(容量共计296M,已用120M,剩余176M):

  1. [root@linuxprobe ~]# vgdisplay
  2. --- Volume group ---
  3. VG Name rhcsa
  4. System ID
  5. Format lvm2
  6. Metadata Areas 1
  7. Metadata Sequence No 4
  8. VG Access read/write
  9. VG Status resizable
  10. MAX LV 0
  11. Cur LV 1
  12. Open LV 1
  13. Max PV 0
  14. Cur PV 1
  15. Act PV 1
  16. VG Size 296.00 MiB
  17. PE Size 4.00 MiB
  18. Total PE 74
  19. Alloc PE / Size 30 / 120.00 MiB
  20. Free PE / Size 44 / 176.00 MiB
  21. VG UUID QxBS5f-beVv-FJnu-GKyu-UWWF-JS8x-ytiAN9

创建原始文件,写入一行文字:

  1. [root@linuxprobe ~]# echo "Welcome to Linuxprobe.com" > /rhcsa/readme.txt
  2. [root@linuxprobe ~]# ls /rhcsa
  3. lost+found readme.txt

对rhcsa卷组的vo逻辑卷做一个名称为SNAP而大小为150M的逻辑卷快照:

  1. [root@linuxprobe ~]# lvcreate -L 150M -s -n SNAP /dev/rhcsa/vo
  2. Rounding up size to full physical extent 152.00 MiB
  3. Reducing COW size 152.00 MiB down to maximum usable size 124.00 MiB.
  4. Logical volume "SNAP" created

查看逻辑卷和快照的信息:

  1. [root@linuxprobe ~]# lvs
  2. LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
  3. SNAP rhcsa swi-a-s--- 124.00m vo 0.01
  4. vo rhcsa owi-aos--- 120.00m
  5. root rhel -wi-ao---- 17.51g
  6. swap rhel -wi-ao---- 2.00g

在逻辑卷中创建一个100M的文件:

  1. [root@linuxprobe ~]# dd if=/dev/zero of=/rhcsa/files count=1 bs=100M
  2. 1+0 records in
  3. 1+0 records out
  4. 104857600 bytes (105 MB) copied, 1.31474 s, 79.8 MB/s

再来看下逻辑卷快照的使用量:

  1. [root@linuxprobe ~]# lvs
  2. LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
  3. SNAP rhcsa swi-a-s--- 124.00m vo 89.76
  4. vo rhcsa owi-aos--- 120.00m
  5. root rhel -wi-ao---- 17.51g
  6. swap rhel -wi-ao---- 2.00g

将文件系统卸载:

  1. [root@linuxprobe ~]# umount /rhcsa

恢复SNAP逻辑卷快照内容:

  1. [root@linuxprobe ~]# lvconvert --merge /dev/rhcsa/SNAP
  2. Merging of volume SNAP started.
  3. vo: Merged: 18.2%
  4. vo: Merged: 100.0%
  5. Merge of snapshot into logical volume vo has finished.
  6. Logical volume "SNAP" successfully removed

快照恢复一次后会被自动删除:

  1. [root@linuxprobe ~]# lvs
  2. LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
  3. vo rhcsa -wi-a----- 120.00m
  4. root rhel -wi-ao---- 17.51g
  5. swap rhel -wi-ao---- 2.00

重新挂载文件系统:

  1. [root@linuxprobe ~]# mount /dev/rhcsa/vo /rhcsa

原始的文件还在,但刚刚创建的100M大文件被清除了:

  1. [root@linuxprobe ~]# ls /rhcsa
  2. lost+found readme.txt

第7章 使用RAID与LVM磁盘阵列技术的更多相关文章

  1. 使用RAID与LVM磁盘阵列技术。

    7.2 LVM逻辑卷管理器 前面学习的硬盘设备管理技术虽然能够有效地提高硬盘设备的读写速度以及数据的安全性,但是在硬盘分好区或者部署为RAID磁盘阵列之后,再想修改硬盘分区大小就不容易了.换句话说,当 ...

  2. RAID与LVM磁盘阵列技术

    RAID(Redundant Array of Independent Disks,独立冗余磁盘阵列) RAID概念: RAID技术通过把多个硬盘设备组合成一个容量更大.安全性更好的磁盘阵列,并把数据 ...

  3. Linux 就该这么学 CH07 使用RAID和LVM磁盘阵列技术

    1 RAID (独立冗余磁盘阵列) RAID 技术通过把多个硬盘设备组合成一个容量更大.安全性更好的磁盘阵列,并把数据切割成多个区段之后分别存在各个不同的物理硬盘设备上,然后利用分散读写计数来提升磁盘 ...

  4. RAID和LVM磁盘阵列

    RAID磁盘冗余阵列 CPU的处理性能保持着高速增长,Intel公司在2017年最新发布的i9-7980XE处理器芯片更是达到了18核心36线程.但与此同时,硬盘设备的性能提升却不是很大,因此逐渐成为 ...

  5. 《linux就该这么学》第九节课:第七章,RAID阵列和LVM逻辑卷技术

    笔记 (借鉴请改动) 7.1.RAID(独立冗余磁盘阵列) 常见的几种RAID:RAID0,RAID1,RAID5,RAID10   raid0  实现写入速度但安全性略低. raid1 实现了速度和 ...

  6. linux入门系列13--磁盘管理之RAID、LVM技术

    前一篇文章学习了磁盘分区.格式化.挂载等相关知识,本文将讲解RAID和LVM技术. 磁盘管理操作主要是运维人员用的较多,如果只是单纯的开发人员,可以先略过本文.但是在很多小公司里往往都是一人多用,运维 ...

  7. Linux - RAID和LVM

    什么是 RAID 磁盘阵列全名是『 Redundant Arrays of Inexpensive Disks, RAID 』,英翻中的意思是:容错式廉价磁盘阵列. RAID 可以透过一个技术(软件或 ...

  8. 17、RAID和LVM

    一.RAID 1.什么是raid 磁盘阵列(Redundant Arrays of Independent Drives,RAID),有"独立磁盘构成的具有冗余能力的阵列"之意. ...

  9. RAID和LVM

    EXT家族支持度最广,但创建文件系统慢修复慢存储容量有限 XFS同样是日志文件系统:容量大,支持大存储高性能,创建/修复文件系统快inode与block都是系统需要用到时,才动态配置产生 基本分区(静 ...

随机推荐

  1. python3 入门 (四) 类与继承

    Python 类 Python中的类提供了面向对象编程的所有基本功能:类的继承机制允许多个基类,派生类可以覆盖基类中的任何方法,方法中可以调用基类中的同名方法. 对象可以包含任意数量和类型的数据. p ...

  2. 第三章:Javascript类型、值和变量。

    计算机程序的运行需要对值(value)比如数字3.14或者文本"hello world"进行操作,在编程语言中,能够表示并操作的值的类型叫做数据类型(type),编程语言最基本的特 ...

  3. JS面向对象高级特性

    本篇是通过学习视频<一头扎进javascirpt高级篇>整理的一些相关知识,大致包括下面几个方面: 1 对象的创建方法 2 对象的对象属性.私有属性.类属性 3 对象的对象方法.私有方法. ...

  4. css左右侧自动填充宽度布局

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  5. jquery indexOf使用方法

    当无法确定在某个字符串中是否确实存在一个字符的时候,就可调用 indexOf() 和 lastIndexOf() 方法 indexOf() 和 lastIndexOf() 是js的用法,与jquery ...

  6. 【Gym 100947E】Qwerty78 Trip(组合数取模/费马小定理)

    从(1,1)到(n,m),每次向右或向下走一步,,不能经过(x,y),求走的方案数取模.可以经过(x,y)则相当于m+n步里面选n步必须向下走,方案数为 C((m−1)+(n−1),n−1) 再考虑其 ...

  7. Android中获取图片的宽和高

    在Android中,我们想获取图片的宽和高应该怎么办?一.正常加载图片的方法下获取宽和高 举一个简单的例子:创建一个图片的副本 //加载原图 Bitmap bmSrc = BitmapFactory. ...

  8. int方法

    代码 #int内部功能 name='Kamil.Liu' age=18 num=-11 print(dir(age)) print(age.bit_length())#返回表示当前数字占用的最少位数 ...

  9. Visio绘制时序图

    用visio建立时序图 1.选择模版 2.常见符号 时序图创建步骤 1.确定交互过程的上下文: 2.识别参与过程的交互对象: 3.为每个对象设置生命线: 4.从初始消息开始,依次画出随后消息: 5.考 ...

  10. CF Gym 100685A Ariel

    传送门 A. Ariel time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...