热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Linux实用逻辑卷之建立LVM

前面的文章我们介绍了LVM的基本概念,这篇文章就来动手实际操作一下,记录馒头(LVM逻辑卷)的加工过程,这里我的演示环境是VMware虚拟机,操作系统是RedHatEnterpris

  前面的文章我们介绍了LVM的基本概念,这篇文章就来动手实际操作一下,记录馒头(LVM逻辑卷)的加工过程,这里我的演示环境是VMware虚拟机,操作系统是RedHat Enterprise 5.3 64位操作系统,不同的Linux操作系统之间差别不大,这里也推荐大家使用虚拟机操作,因为这样可以更加灵活的添加硬盘。

实现目标

  在接下来的操作中,我们将创建LVM逻辑卷,为系统分别添加3个“物理”硬盘,大小分别为1GB,这里的硬盘就做为LVM中的物理卷PV,然后创建卷组PV及逻辑卷LV。

准备面粉(物理卷PV)

  由于使用的是虚拟机,那么可以轻松的为Linux系统添加磁盘,如下图所示,我为系统该虚拟机添加3块独立的SCSI硬盘。

  添加好物理磁盘后我们启动系统,通过系统命令我们可以看到磁盘已经添加成功,显示分别为/dev/sdb、/dev/sdc、/dev/sdd

  
  1. [root@localhost ~]# fdisk -l 
  2.   
  3. Disk /dev/sda: 21.4 GB, 21474836480 bytes 
  4. 255 heads, 63 sectors/track, 2610 cylinders 
  5. Units = cylinders of 16065 * 512 = 8225280 bytes 
  6.   
  7.    Device Boot      Start         End      Blocks   Id  System 
  8. /dev/sda1   *           1          13      104391   83  Linux 
  9. /dev/sda2              14        2610    20860402+  8e  Linux LVM 
  10.   
  11. Disk /dev/sdb: 1073 MB, 1073741824 bytes 
  12. 255 heads, 63 sectors/track, 130 cylinders 
  13. Units = cylinders of 16065 * 512 = 8225280 bytes 
  14.   
  15. Disk /dev/sdb doesn't contain a valid partition table 
  16.   
  17. Disk /dev/sdc: 1073 MB, 1073741824 bytes 
  18. 255 heads, 63 sectors/track, 130 cylinders 
  19. Units = cylinders of 16065 * 512 = 8225280 bytes 
  20.   
  21. Disk /dev/sdc doesn't contain a valid partition table 
  22.   
  23. Disk /dev/sdd: 1073 MB, 1073741824 bytes 
  24. 255 heads, 63 sectors/track, 130 cylinders 
  25. Units = cylinders of 16065 * 512 = 8225280 bytes 
  26.   
  27. Disk /dev/sdd doesn't contain a valid partition table

  虽然物理磁盘添加好了,但我们还要为其创建一个分区,并将系统识别码标示为“Linux LVM”,基本操作如下

  
  1. [root@localhost ~]# fdisk /dev/sdb    //使用fdisk工具为磁盘创建分区 
  2. Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel 
  3. Building a new DOS disklabel. Changes will remain in memory only, 
  4. until you decide to write them. After that, of course, the previous 
  5. content won't be recoverable. 
  6.   
  7. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) 
  8.   
  9. Command (m for help): p    //显示当前磁盘下已经存在的分区(目前为空) 
  10.   
  11. Disk /dev/sdb: 1073 MB, 1073741824 bytes 
  12. 255 heads, 63 sectors/track, 130 cylinders 
  13. Units = cylinders of 16065 * 512 = 8225280 bytes 
  14.   
  15.    Device Boot      Start         End      Blocks   Id  System 
  16.   
  17. Command (m for help): n    //为磁盘添加分区 
  18. Command action 
  19.    e   extended 
  20.    p   primary partition (1-4)    //这里选择创建主分区即可 
  21. Partition number (1-4): 1    //输入分区号,这里输入1即可 
  22. First cylinder (1-130, default 1):     //分区标记开始,使用默认即可 
  23. Using default value 1 
  24. Last cylinder or +size or +sizeM or +sizeK (1-130, default 130): //分区标记结束,这里分配磁盘全部可用空间 
  25. Using default value 130 
  26.   
  27. Command (m for help): t    //改变分区系统识别ID 
  28. Selected partition 1 
  29. Hex code (type L to list codes): 8e  //这里8e代表LVM标示,可以输入L来查看系统支持的ID标示码 
  30. Changed system type of partition 1 to 8e (Linux LVM) 
  31.   
  32. Command (m for help): p    //再次显示分区,可以看到分区已经创建好 
  33.   
  34. Disk /dev/sdb: 1073 MB, 1073741824 bytes 
  35. 255 heads, 63 sectors/track, 130 cylinders 
  36. Units = cylinders of 16065 * 512 = 8225280 bytes 
  37.   
  38.    Device Boot      Start         End      Blocks   Id  System 
  39. /dev/sdb1               1         130     1044193+  8e  Linux LVM 
  40.   
  41. Command (m for help): w    //最后输入w来报错分区操作
  42. The partition table has been altered! 
  43.   
  44. Calling ioctl() to re-read partition table. 
  45. Syncing disks. 
  46. [root@localhost ~]# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 //创建物理卷PV 
  47.   Physical volume "/dev/sdb1" successfully created 
  48.   Physical volume "/dev/sdc1" successfully created 
  49.   Physical volume "/dev/sdd1" successfully created 

  上面的操作我们即可完成面粉(PV物理卷)的准备工作,其他两个盘符都按照这样的操作创建好分区,最后使用pvcreate命令创建物理卷PV。

准备面团(卷组VG)

  卷组的操作非常简单,通过下面的命令即可将3个物理卷添加到卷组中

  
  1. [root@localhost ~]# vgcreate myVG /dev/sdb1 /dev/sdc1 /dev/sdd1 
  2.   Volume group "myVG" successfully created 

准备馒头(逻辑卷LV)

  准备工作完成后,我们就可以从卷组中划分逻辑卷了,通过下面的命令我为系统分别创建3个大小为1000M的逻辑卷

  
  1. [root@localhost ~]# lvcreate -L 1000M -n lv01 myVG   //-L指定分配空间大小 -n指定逻辑卷名 最后面为卷组名
  2.   Logical volume "lv01" created 
  3. [root@localhost ~]# lvcreate -L 1000M -n lv02 myVG 
  4.   Logical volume "lv02" created 
  5. [root@localhost ~]# lvcreate -L 1000M -n lv03 myVG 
  6.   Logical volume "lv03" created 

蒸馒头(分配文件系统、挂载)

  虽然我们已经完成了最后逻辑卷的创建,但是现在还不能用,因为逻辑卷还没有自己的文件系统,通过下面的操作为逻辑卷创建文件系统,并挂载到Linux中。

  
  1. [root@localhost ~]# mkfs.ext3 /dev/myVG/lv01    //为逻辑卷分配ext3文件系统 
  2. [root@localhost ~]# mkfs.ext3 /dev/myVG/lv02 
  3. [root@localhost ~]# mkfs.ext3 /dev/myVG/lv03 
  4. [root@localhost ~]# mkdir /lv01 /lv02 /lv03 //创建挂载点 
  5. [root@localhost ~]# mount /dev/myVG/lv01 /lv01/ /挂载逻辑卷 
  6. [root@localhost ~]# mount /dev/myVG/lv02 /lv02/ 
  7. [root@localhost ~]# mount /dev/myVG/lv03 /lv03/ 

  至此我们已经将最终的逻辑卷挂载到Linux操作系统中了,并且已经可以正常使用,为了系统下次启动时能够自动将逻辑卷添挂载到系统中,我们通过下面的操作来配置系统开机自动挂载。

  
  1. [root@localhost ~]# vi /etc/fstab 
  2. /dev/VolGroup00/LogVol00 /                       ext3    defaults        1 1 
  3. LABEL=/boot             /boot                   ext3    defaults        1 2 
  4. tmpfs                   /dev/shm                tmpfs   defaults        0 0 
  5. devpts                  /dev/pts                devpts  gid=5,mode=620  0 0 
  6. sysfs                   /sys                    sysfs   defaults        0 0 
  7. proc                    /proc                   proc    defaults        0 0 
  8. /dev/VolGroup00/LogVol01 swap                    swap    defaults        0 0 
  9. /dev/myVG/lv01  /lv01   ext3 defaults 0 0   //这里为添加的挂载点 
  10. /dev/myVG/lv02  /lv02   ext3 defaults 0 0 
  11. /dev/myVG/lv03  /lv03   ext3 defaults 0 0 

  通过上面的操作即完成了逻辑卷的创建,后续我们会近一步讨论逻辑卷的管理及使用。

本文出自 “记录IT运维的那些事” 博客,请务必保留此出处http://abuve.blog.51cto.com/2237587/1104854


推荐阅读
  • Python多线程详解与示例
    本文介绍了Python中的多线程编程,包括僵尸进程和孤儿进程的概念,并提供了具体的代码示例。同时,详细解释了0号进程和1号进程在系统中的作用。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 本文总结了《编程珠玑》第12章关于采样问题的算法描述与改进,并提供了详细的编程实践记录。参考了其他博主的总结,链接为:http://blog.csdn.net/neicole/article/details/8518602。 ... [详细]
  • 本文介绍了如何使用Flume从Linux文件系统收集日志并存储到HDFS,然后通过MapReduce清洗数据,使用Hive进行数据分析,并最终通过Sqoop将结果导出到MySQL数据库。 ... [详细]
  • 本文详细介绍了如何在 Linux 系统上安装 JDK 1.8、MySQL 和 Redis,并提供了相应的环境配置和验证步骤。 ... [详细]
  • 本文介绍了如何通过安装 rpm 包来使用 resize2fs 和 ext2online 工具进行系统文件的扩容。提供了详细的步骤和注意事项。 ... [详细]
  • 【妙】bug称它为数组越界的妙用
    1、聊一聊首先跟大家推荐一首非常温柔的歌曲,跑步的常听。本文主要把自己对C语言中柔性数组、零数组等等的理解分享给大家,并聊聊如何构建一种统一化的学习思想 ... [详细]
  • 在 CentOS 6.4 上安装 QT5 并启动 Qt Creator 时,可能会遇到缺少 GLIBCXX_3.4.15 的问题。这是由于系统中的 libstdc++.so.6 版本过低。本文将详细介绍如何通过更新 GCC 版本来解决这一问题。 ... [详细]
  • 本文详细介绍了如何在Linux系统(以CentOS为例)上彻底卸载Zimbra邮件系统,包括停止服务、删除文件和用户等步骤。 ... [详细]
  • Linux下MySQL 8.0.28安装指南
    本文详细介绍了在Linux系统上安装MySQL 8.0.28的步骤,包括下载数据库、解压数据包、安装必要组件和启动MySQL服务。 ... [详细]
  • 本文介绍了 Linux 系统中用于定期执行任务的 cron 服务及其配置方法。通过 crond 和 crontab 命令,用户可以轻松地安排系统和用户级别的周期性任务。 ... [详细]
  • Linux 文件对比与补丁操作详解
    本文详细介绍了在Linux系统中进行文件对比和补丁操作的方法,包括生成补丁、打补丁以及撤销补丁的具体步骤。重点强调了打补丁时的注意事项,以确保操作的准确性和安全性。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • Ping 命令的高级用法与技巧
    本文详细介绍了 Ping 命令的各种高级用法和技巧,帮助读者更好地理解和利用这一强大的网络诊断工具。 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
author-avatar
用户da7lbtmrer
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有