|
|
|
|
移动端

6.3.3 使用Raid 和LVM 提升磁盘性能并实现磁盘动态扩展

《Microsoft Azure 管理与开发.上册,基础设施服务IaaS》第6章存储,本章主要介绍了普通存储和高级存储的使用方法、性能优化、一些常见问题的总结和处理方法、文件共享服务的使用方法、存储管理工具的安装和使用,以及磁盘阵列和LVM的配置方法。本节为大家介绍使用Raid 和LVM 提升磁盘性能并实现磁盘动态扩展。

作者:世纪互联蓝云公司来源:电子工业出版社|2018-07-07 14:06

【新品产上线啦】51CTO播客,随时随地,碎片化学习

6.3.3 使用Raid 和LVM 提升磁盘性能并实现磁盘动态扩展

本节提供了一个通过Raid 来提升磁盘性能,并通过LVM 实现磁盘大小动态扩展的配置步骤参考。

最终分区结构见表6.3-1。

表6.3-1

具体的配置步骤如下:

(1) 磁盘分区。

首先,创建一台CentOS 6.7 的虚拟机,并挂载 4 块 10GB 的数据磁盘:

  1. [root@CentOS67 testuser]# fdisk -l  
  2. ……  
  3. Disk /dev/sdc: 10.7 GB, 10737418240 bytes  
  4. 255 heads, 63 sectors/track, 1305 cylinders  
  5. Units = cylinders of 16065 * 512 = 8225280 bytes  
  6. Sector size (logical/physical): 512 bytes / 512 bytes  
  7. I/O size (minimum/optimal): 512 bytes / 512 bytes  
  8. Disk identifier: 0x00000000  
  9. ……  
  10. Disk /dev/sdf: 10.7 GB, 10737418240 bytes  
  11. 255 heads, 63 sectors/track, 1305 cylinders  
  12. Units = cylinders of 16065 * 512 = 8225280 bytes  
  13. Sector size (logical/physical): 512 bytes / 512 bytes  
  14. I/O size (minimum/optimal): 512 bytes / 512 bytes  
  15. Disk identifier: 0x00000000 

接着分别将每个磁盘分为2 个分区,以 /dev/sdc 为例:

使用 fdisk 工具划出第一个分区 /dev/sdc1,大小约为 5GB(dev/sdc2 同理,Partitionnumber 要改为 2,扇区的起止编号也不同,sdc2 扇区编号是 654-1305):

  1. [root@CentOS67 testuser]# fdisk /dev/sdc  
  2. WARNING: DOS-compatible mode is deprecated. It's strongly recommended to  
  3. switch off the mode (command 'c') and change display units to  
  4. sectors (command 'u').  
  5. Command (m for help): n  
  6. Command action  
  7. e extended  
  8. p primary partition (1-4)  
  9. p  
  10. Partition number (1-4): 1  
  11. First cylinder (1-1305, default 1): 1  
  12. Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): 653  
  13. Command (m for help): t  
  14. Selected partition 1  
  15. Hex code (type L to list codes): fd  
  16. Changed system type of partition 1 to fd (Linux raid autodetect)  
  17. Command (m for help): w  
  18. The partition table has been altered!  
  19. Calling ioctl() to re-read partition table.  
  20. WARNING: Re-reading the partition table failed with error 16: Device or  
  21. resource busy.  
  22. The kernel still uses the old table. The new table will be used at  
  23. the next reboot or after you run partprobe(8) or kpartx(8)  
  24. Syncing disks. 

使用 fdisk -l 查看分区结果:

  1. [root@CentOS67 testuser]# fdisk -l  
  2. ……  
  3. Disk /dev/sdc: 10.7 GB, 10737418240 bytes  
  4. 255 heads, 63 sectors/track, 1305 cylinders  
  5. Units = cylinders of 16065 * 512 = 8225280 bytes  
  6. Sector size (logical/physical): 512 bytes / 512 bytes  
  7. I/O size (minimum/optimal): 512 bytes / 512 bytes  
  8. Disk identifier: 0xbd293e5b  
  9. Device Boot Start End Blocks Id System  
  10. /dev/sdc1 1 653 5245191 fd Linux raid autodetect  
  11. /dev/sdc2 654 1305 5237190 fd Linux raid autodetect 

对剩下的3 个磁盘(/dev/sdd,/dev/sde,/dev/sdf)进行同样的处理,处理后使用 fdisk-l 查看是否全部完成分区格式化。

(2) RAID 5 的配置。

采用 RAID 5,在提高IO 性能的同时保证数据安全。

首先加载raid5 内核模块:

  1. [root@CentOS67 testuser]# modprobe raid5 

接下来将 /dev/sdc1,/dev/sdc2,/dev/sdd1 合并为 /dev/md127:

  1. [root@CentOS67 testuser]# mdadm --create /dev/md127 --level=5 
  2. --raid-devices=3 /dev/sd[cd]1 /dev/sdc2  
  3. mdadm: /dev/sdc1 appears to contain an ext2fs file system  
  4. size=5245188K mtime=Thu Jan 1 00:00:00 1970  
  5. mdadm: /dev/sdd1 appears to contain an ext2fs file system  
  6. size=5245188K mtime=Thu Jan 1 00:00:00 1970  
  7. mdadm: /dev/sdc2 appears to contain an ext2fs file system  
  8. size=5237188K mtime=Thu Jan 1 00:00:00 1970  
  9. Continue creating array? y  
  10. mdadm: Defaulting to version 1.2 metadata  
  11. mdadm: array /dev/md127 started. 

查看 /dev/md127 的状态:

  1. [root@CentOS67 testuser]# mdadm --misc --detail /dev/md127 

类似地,分别将/dev/sdd2,/dev/sde1,/dev/sde2 合并为/dev/md126,将/dev/sdf1 和/dev/sdf2 合并为/dev/md125。

LVM 配置:

首先,将/dev/md127,/dev/md126,/dev/md125 创建为Physical Volume(PV):

  1. [root@CentOS67 testuser]# pvcreate /dev/md127 /dev/md126 /dev/md125  
  2. Physical volume "/dev/md127" successfully created  
  3. Physical volume "/dev/md126" successfully created  
  4. Physical volume "/dev/md125" successfully created 

扫描 Physical Volume 的改动:

  1. [root@CentOS67 testuser]# pvscan  
  2. PV /dev/md125 lvm2 [4.99 GiB]  
  3. PV /dev/md126 lvm2 [9.98 GiB]  
  4. PV /dev/md127 lvm2 [9.98 GiB]  
  5. Total: 3 [24.95 GiB] / in use: 0 [0 ] / in no VG: 3 [24.95 GiB] 

将 /dev/md127 和 /dev/md126 添加到 Volume Group 中:

  1. [root@CentOS67 testuser]# vgcreate VolGroup1 /dev/md127 /dev/md126  
  2. Volume group "VolGroup1" successfully created 

Volume Group 创建好后,在其上划分新的 Logical Volume:

  1. [root@CentOS67 testuser]# lvcreate -l 2500 -n LogicalVol1 VolGroup1  
  2. Logical volume "LogicalVol1" created.  
  3. [root@CentOS67 testuser]# lvcreate -l 2608 -n LogicalVol2 VolGroup1  
  4. Logical volume "LogicalVol2" created. 

使用 mkfs.ext4 工具将两个 Logical Volume 的文件系统格式化为 ext4:

  1. [root@CentOS67 testuser]# mkfs.ext4 /dev/mapper/VolGroup1-LogicalVol1  
  2. mke2fs 1.41.12 (17-May-2010)  
  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. 640848 inodes, 2560000 blocks  
  9. 128000 blocks (5.00%) reserved for the super user  
  10. First data block=0 
  11. Maximum filesystem blocks=2621440000 
  12. 79 block groups  
  13. 32768 blocks per group, 32768 fragments per group  
  14. 8112 inodes per group  
  15. Superblock backups stored on blocks:  
  16. 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632  
  17. Writing inode tables: done  
  18. Creating journal (32768 blocks): done  
  19. Writing superblocks and filesystem accounting information: done  
  20. This filesystem will be automatically checked every 39 mounts or  
  21. 180 days, whichever comes first. Use tune2fs -c or -i to override.  
  22. [root@CentOS67 testuser]# mkfs.ext4 /dev/mapper/VolGroup1-LogicalVol2  
  23. …… 

格式化后,将格式化得到的文件分区mount 到目录中(如果要开机自动挂载可以修改/etc/fstab):

  1. [root@CentOS67 testuser]# mkdir /mnt/LV1  
  2. [root@CentOS67 testuser]# mkdir /mnt/LV2  
  3. [root@CentOS67 testuser]# mount /dev/mapper/VolGroup1-LogicalVol1 /mnt/LV1  
  4. [root@CentOS67 testuser]# mount /dev/mapper/VolGroup1-LogicalVol2 /mnt/LV2 

至此,LVM 部分已经配置完成。

(3) 进一步测试。

扩展LVM:

下载一个测试文件,放到LVM2 分区中:

  1. [root@CentOS67 LV2]# wget  
  2. http://daneaststorage.blob.core.chinacloudapi.cn/demo/Azure.pdf  
  3. --2017-03-09 15:13:21--  
  4. http://daneaststorage.blob.core.chinacloudapi.cn/demo/Azure.pdf  
  5. Resolving daneaststorage.blob.core.chinacloudapi.cn... 42.159.208.78  
  6. Connecting to  
  7. daneaststorage.blob.core.chinacloudapi.cn|42.159.208.78|:80... connected.  
  8. HTTP request sent, awaiting response... 200 OK  
  9. Length: 7670041 (7.3M) [application/pdf]  
  10. Saving to: “Azure.pdf”  
  11. 100%[===================================================================  
  12. ==========================================================>] 7,670,041  
  13. --.-K/s in 0.06s  
  14. 2017-03-09 15:13:21 (123 MB/s) - “Azure.pdf” saved [7670041/7670041]  
  15. [root@CentOS67 LV2]# ll  
  16. total 7508  
  17. -rw-r--r--. 1 root root 7670041 Jul 6 2016 Azure.pdf  
  18. drwx------. 2 root root 16384 Mar 9 15:02 lost+found 

将创建好的Physical Volume /dev/md125 扩展到VolGroup1 中:

  1. [root@CentOS67 LV2]# vgextend VolGroup1 /dev/md125  
  2. Volume group "VolGroup1" successfully extended 

扩展Logic Volume 的大小:

  1. [root@CentOS67 LV2]# lvextend /dev/mapper/VolGroup1-LogicalVol2 /dev/md125  
  2. Size of logical volume VolGroup1/LogicalVol2 changed from 10.19 GiB (2608  
  3. extents) to 15.18 GiB (3885 extents).  
  4. Logical volume LogicalVol2 successfully resized 

扩展完成后,可以看到 /mnt/LV2 的大小实际没有发生变化:

  1. [root@CentOS67 LV2]# df -h  
  2. Filesystem Size Used Avail Use% Mounted on  
  3. /dev/sda1 30G 2.0G 26G 7% /  
  4. tmpfs 6.9G 0 6.9G 0% /dev/shm  
  5. /dev/sdb1 133G 60M 126G 1% /mnt/resource  
  6. /dev/mapper/VolGroup1-LogicalVol1  
  7. 9.5G 22M 9.0G 1% /mnt/LV1  
  8. /dev/mapper/VolGroup1-LogicalVol2  
  9. 10G 33M 9.4G 1% /mnt/LV2 

需要进一步使用 resize2fs 工具将文件系统的大小进行扩展:

  1. [root@CentOS67 LV2]# resize2fs /dev/mapper/VolGroup1-LogicalVol2  
  2. resize2fs 1.41.12 (17-May-2010)  
  3. Filesystem at /dev/mapper/VolGroup1-LogicalVol2 is mounted on /mnt/LV2;  
  4. on-line resizing required  
  5. old desc_blocks = 1new_desc_blocks = 1 
  6. Performing an on-line resize of /dev/mapper/VolGroup1-LogicalVol2 to 3978240  
  7. (4k) blocks.  
  8. The filesystem on /dev/mapper/VolGroup1-LogicalVol2 is now 3978240 blocks  
  9. long. 

查看发现文件系统的大小已经变为新的大小(扩展成功):

  1. [root@CentOS67 LV2]# df -h  
  2. Filesystem Size Used Avail Use% Mounted on  
  3. /dev/sda1 30G 2.0G 26G 7% /  
  4. tmpfs 6.9G 0 6.9G 0% /dev/shm  
  5. /dev/sdb1 133G 60M 126G 1% /mnt/resource  
  6. /dev/mapper/VolGroup1-LogicalVol1  
  7. 9.5G 22M 9.0G 1% /mnt/LV1  
  8. /dev/mapper/VolGroup1-LogicalVol2  
  9. 15G 33M 15G 1% /mnt/LV2 

文件未损坏或丢失:

  1. [root@CentOS67 LV2]# ll  
  2. total 7508  
  3. -rw-r--r--. 1 root root 7670041 Jul 6 2016 Azure.pdf  
  4. drwx------. 2 root root 16384 Mar 9 15:02 lost+found 


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

SQL Server 2005奥秘

本书是作者深入研究SQL Server 2005数据库体系结构和内部机制的经验总结。 全书不拘泥于具体的管理操作,而是通过对存储的数据和日志文件...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊