linux下使用逻辑卷(LVM)实现多块硬盘的整和与可持续扩充

2024-04-04 18:48

本文主要是介绍linux下使用逻辑卷(LVM)实现多块硬盘的整和与可持续扩充,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

来自:http://space.baidu.com/hl_jacky/blog/item/69c942e88d623bd8d439c952.html

操作环境:RedHat Linux AS 4 update 5;联想服务器SCSI硬盘4块

声明:本章内容只针对LVM相关操作,其中涉及到fdisk分区软件,操作系统安装等读者请自行学习

现在由于硬盘越来越大,和一些应用的特殊需要,往往需要一个巨大而又可持续扩充的存储空间。

实现这个目标一般有两种途径

1、购买新的硬盘,这样的新设备虽然价格高但是性能好而且维护方便,但是无法实现根据应用的适时扩充。

2、利用现有的多块盘通过逻辑卷功能将其整合到一起,不必增加新的投入,却获得了一个新的大容量存储设备并且该设备还可以进行适时扩展

下边我们谈一下如何配置和使用逻辑卷:

准备工作:建立逻辑卷需要空的分区或硬盘若干——大于等于1个(块)

为新建立的存储设备准备一个挂载点吧!不然建好了怎么用啊?

现在正式开始我们的LVM旅程

1、使用linux自带的分区工具fdisk对分区或硬盘进行操作,这一步一定要看好了啊,不然错杀忠良可怪不得高某人。过程如下

[root@VPNSERV ~]# fdisk -l                                                                                   ####查看当前系统中有那些可用设备

Disk /dev/sda: 36.7 GB, 36703934464 bytes                                                     ####这个看来没法用了应该是操作系统所在的盘PASS
63 sectors/track, 4462 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id System
/dev/sda1   *           1          13      104391   83 Linux
/dev/sda2              14        1925    15358140   83 Linux
/dev/sda3            1926        2435     4096575   82 Linux swap
/dev/sda4            2436        4462    16281877+   5 Extended
/dev/sda5            2436        4462    16281846   83 Linux

Disk /dev/sdb: 36.7 GB, 36703918080 bytes                                                      ####这个是块空盘只有一个linux分区看来可以使用啊(当然了是我新挂上的)
63 sectors/track, 4462 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id System
/dev/sdb1               1        4462    35840983+ 83 Linux                                     ####这里可以看到该分区的ID标识为83,组建LVM需要的ID是8e,否则无法建立PV后边我们将修改该ID

Disk /dev/sdc: 36.7 GB, 36703918080 bytes                                                      ####这个也是新挂的盘也是只有一个linux分区
63 sectors/track, 4462 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id System
/dev/sdc1               1        4462    35840983+ 83 Linux                                     

对于如何判断哪个分区/硬盘正在使用可以利用mount命令查看,新插入的磁盘一定没有被mount上,那么结合fdisk的结果和e2lable把所有正在使用的磁盘排除,剩下的大致就是可以随便搞的了


[root@VPNSERV ~]# fdisk /dev/sdb                                                                      ####使用fdisk对第一块空盘进行分区和修改分区的操作,fdisk有一个好处是在你使用w提交修改前随便怎么弄都可以。

The number of cylinders for this disk is set to 4462.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p                                                                                         ####分区之前使用p打印一下当前的分区表,这是个好习惯,可以再次确认这是不是你要操作的盘

Disk /dev/sdb: 36.7 GB, 36703918080 bytes
255 heads, 63 sectors/track, 4462 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id System
/dev/sdb1               1        4462    35840983+ 83 Linux                                       ####看到当前已经有一个分区了,ID是83我们直接把它修改了就行

Command (m for help): t                                                                                           ####是用t来为分区打/修改标记
Selected partition 1                                                                                                    ####对哪个分区进行操作,这里只有一个所以添1
Hex code (type L to list codes): 8e                                                                           ####输入新的标记8e
Changed system type of partition 1 to 8e (Linux LVM)                                        ####提示该分区变成LVM分区了

Command (m for help): p                                                                                         ####再次使用p查看分区情况

Disk /dev/sdb: 36.7 GB, 36703918080 bytes
255 heads, 63 sectors/track, 4462 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id System
/dev/sdb1               1        4462    35840983+ 8e Linux LVM                                 ####果然分区ID变为8e了

Command (m for help): w                                                                                          ####以上所有操作确认没有问题了下定决心使用w进行存盘操作
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

[[root@VPNSERV ~]# fdisk /dev/sdc                                                                           ####另一块盘也照上边的步骤操作不再多说

The number of cylinders for this disk is set to 4462.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/sdc: 36.7 GB, 36703918080 bytes
255 heads, 63 sectors/track, 4462 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id System
/dev/sdc1               1        4462    35840983+ 83 Linux

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): p

Disk /dev/sdc: 36.7 GB, 36703918080 bytes
255 heads, 63 sectors/track, 4462 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id System
/dev/sdc1               1        4462    35840983+ 8e Linux LVM

Command (m for help): w                                                                                      ####好了存盘
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

到这里为止,分区的准备已经完成了,lvm的构成分区不知有没有个数限制,不过十几个还是可以的,相信没有谁会弄几百个分区来做这个吧?那样的人不是疯子也累疯了!

LVM是一个层次结构的系统,最底层是由许多分区构成的PV层也就是虚拟分区层,PV层之上的是VG虚拟磁盘组曾,最上边的是应用层LV层这一层可以象磁盘一样格式化和使用,当然分区也可以,不过好不容易弄了个大的你又要把它分小了,这不是有病么????


[root@VPNSERV ~]# pvcreate /dev/sdb1 /dev/sdc1                                            ####使用pvcreate把两个分区加入到新pv里,多个分区的时候也这么写只要分区间用空格格开就行
Physical volume "/dev/sdb1" successfully created
Physical volume "/dev/sdc1" successfully created
[root@VPNSERV ~]# vgcreate data /dev/sdb1 /dev/sdc1                                    ####使用vgcreate把两个分区放到名字叫data的VG中,执行完以后可以在/drv中看到新创建的data目录
Volume group "data" successfully created
[root@VPNSERV ~]# lvcreate -n lvdata -L 60000M data                                     ####使用lvcreate命令创建一个LVM设备名为lvdata 大小是60G 该设备属于VG data ;-n参数为LVM设备命名;-L参数为LVM设备指定空间大小,这里是60000MB即60G;最后跟VG设备名,命令执行完成后在/dev/data /下出现lvdata设备,这个就是我们可以使用的块设备了。
Logical volume "lvdata" created
[root@VPNSERV ~]# ls /dev/data/
lvdata
[root@VPNSERV ~]# mkfs.ext3 /dev/data/lvdata                                                   ####使用mkfs.ext3对LVM设备lvdata进行格式化
mke2fs 1.35 (28-Feb-2004)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
7684096 inodes, 15360000 blocks
768000 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=16777216
469 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424

Writing inode tables: done                           
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information:
done

This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

[root@VPNSERV ~]# mount /dev/data/lvdata /usr/local/www/                                ####格式化之后就可以把LVM设备挂载到一个目录下使用了,使用时和别的硬盘没有区别
[root@VPNSERV ~]# mount                                                                                          ####挂载后使用mount命令查看
/dev/sda2 on / type ext3 (rw)
none on /proc type proc (rw)
none on /sys type sysfs (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
usbfs on /proc/bus/usb type usbfs (rw)
/dev/sda1 on /boot type ext3 (rw)
/dev/sda5 on /data type ext3 (rw)
none on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/mapper/data-lvdata on /usr/local/www type ext3 (rw) <<<<<<<—————挂载后的lvm设备

这篇关于linux下使用逻辑卷(LVM)实现多块硬盘的整和与可持续扩充的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/876581

相关文章

SpringBoot中使用 ThreadLocal 进行多线程上下文管理及注意事项小结

《SpringBoot中使用ThreadLocal进行多线程上下文管理及注意事项小结》本文详细介绍了ThreadLocal的原理、使用场景和示例代码,并在SpringBoot中使用ThreadLo... 目录前言技术积累1.什么是 ThreadLocal2. ThreadLocal 的原理2.1 线程隔离2

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

java父子线程之间实现共享传递数据

《java父子线程之间实现共享传递数据》本文介绍了Java中父子线程间共享传递数据的几种方法,包括ThreadLocal变量、并发集合和内存队列或消息队列,并提醒注意并发安全问题... 目录通过 ThreadLocal 变量共享数据通过并发集合共享数据通过内存队列或消息队列共享数据注意并发安全问题总结在 J

SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤

《SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤》本文主要介绍了SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤,文中通过示例代码介绍的非常详... 目录 目标 步骤 1:确保 ProxySQL 和 mysql 主从同步已正确配置ProxySQL 的

Java数字转换工具类NumberUtil的使用

《Java数字转换工具类NumberUtil的使用》NumberUtil是一个功能强大的Java工具类,用于处理数字的各种操作,包括数值运算、格式化、随机数生成和数值判断,下面就来介绍一下Number... 目录一、NumberUtil类概述二、主要功能介绍1. 数值运算2. 格式化3. 数值判断4. 随机

JS 实现复制到剪贴板的几种方式小结

《JS实现复制到剪贴板的几种方式小结》本文主要介绍了JS实现复制到剪贴板的几种方式小结,包括ClipboardAPI和document.execCommand这两种方法,具有一定的参考价值,感兴趣的... 目录一、Clipboard API相关属性方法二、document.execCommand优点:缺点:

nginx部署https网站的实现步骤(亲测)

《nginx部署https网站的实现步骤(亲测)》本文详细介绍了使用Nginx在保持与http服务兼容的情况下部署HTTPS,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录步骤 1:安装 Nginx步骤 2:获取 SSL 证书步骤 3:手动配置 Nginx步骤 4:测