Centos7创建LVM磁盘管理

news/2024/12/26 16:29:27/文章来源:https://www.cnblogs.com/xulinforDB/p/18633425

Centos7创建LVM磁盘管理

2019-06-02阅读 3840

环境介绍

在centos7下需要挂载两个新的磁盘。为了方便后续的扩容方便,决定将这其设置为LVM管理的方式。

查看一下当前有哪些新增的数据盘,如下:

[root@runsdata-test-0004 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        40G  1.4G   36G   4% /
devtmpfs        7.8G     0  7.8G   0% /dev
tmpfs           7.8G     0  7.8G   0% /dev/shm
tmpfs           7.8G  328K  7.8G   1% /run
tmpfs           7.8G     0  7.8G   0% /sys/fs/cgroup
tmpfs           1.6G     0  1.6G   0% /run/user/0
[root@runsdata-test-0004 ~]# fdisk -lDisk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0008d73aDevice Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048    83884031    41940992   83  LinuxDisk /dev/vdb: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesDisk /dev/vdc: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes[root@runsdata-test-0004 ~]#

可以从上面看出,目前有三块硬盘。 系统盘:40G 另外还有两块50G的硬盘,需要挂载。我以其中一块硬盘作为示例。

LVM管理基本概念

1

LVM管理概念图

  • 1、 物理卷-----PV(Physical Volume) 物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个 物理硬盘。
  • 2、 卷组--------VG(Volumne Group) 卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可 动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以 拥有多个卷组。
  • 3、 逻辑卷-----LV(Logical Volume) 逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立 后可以动态地扩展和缩小空间。系统中的多个逻辑卷要以属于同一个卷组,也可以 属于不同的多个卷组。
  • 4、 物理区域--PE(Physical Extent) 物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在 建立物理卷时指定。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷 的物理区域大小需要一致。
  • 5、 逻辑区域—LE(Logical Extent) 逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在 卷组中的物理区域的大小。
  • 6、 卷组描述区域-----(Volume Group Descriptor Area) 卷组描述区域存在于每个物理卷中,用于描述物理卷本身、物理卷所属卷组、卷组中的 逻辑卷及逻辑卷中物理区域的分配等所有信息,卷组描述区域是在使用pvcreate 建立物理卷时建立的。

目标 - LVM管理拓扑

2

本篇章以此拓扑进行逐步部署。

给硬盘分区

选择其中一块50G的数据盘进行分区,只要将50G都设置一个分区即可,无需考虑设置多个分区。 配置步骤如下:

使用命令:fdisk -l |grep dev,查看添加的硬盘是否存在。

[root@runsdata-test-0004 ~]# fdisk -l | grep dev
Disk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 sectors
/dev/vda1   *        2048    83884031    41940992   83  Linux
Disk /dev/vdb: 53.7 GB, 53687091200 bytes, 104857600 sectors
Disk /dev/vdc: 53.7 GB, 53687091200 bytes, 104857600 sectors
[root@runsdata-test-0004 ~]# 

fdisk是分区工具:fdisk /dev/vdb,进入分区工具设置。

[root@runsdata-test-0004 ~]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x051e2cc7.Command (m for help): m     
Command actiona   toggle a bootable flagb   edit bsd disklabelc   toggle the dos compatibility flagd   delete a partitiong   create a new empty GPT partition tableG   create an IRIX (SGI) partition tablel   list known partition typesm   print this menun   add a new partitiono   create a new empty DOS partition tablep   print the partition tableq   quit without saving changess   create a new empty Sun disklabelt   change a partition's system idu   change display/entry unitsv   verify the partition tablew   write table to disk and exitx   extra functionality (experts only)Command (m for help): 

输入m命令,则是查看有哪些命令可以使用。其中可以先看看这个数据盘有什么分区了。

输入p命令,查看该数据盘已经有哪些分区

Command (m for help): pDisk /dev/vdb: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x051e2cc7Device Boot      Start         End      Blocks   Id  SystemCommand (m for help): 

可以看出这块数据盘暂时还没有任何分区,那么下面我先来进行分区。

下面进入分区,‘n’选一个分区类型,如没有其他设置可按默认下到返回m for help处。最后按'w'保存设置。

img

Command (m for help): n
Partition type:p   primary (0 primary, 0 extended, 4 free)e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-104857599, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-104857599, default 104857599): 
Using default value 104857599
Partition 1 of type Linux and of size 50 GiB is setCommand (m for help): w
The partition table has been altered!Calling ioctl() to re-read partition table.
Syncing disks.
[root@runsdata-test-0004 ~]# 

此时,再次查看一下数据盘,应该已经有一个50G的分区了。那么下一步,将其改为Linux LVM格式分区。

设置磁盘分区为Linux LVM格式分区

img

Command (m for help): pDisk /dev/vdb: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x051e2cc7Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048   104857599    52427776   83  LinuxCommand (m for help): t
Selected partition 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'Command (m for help): pDisk /dev/vdb: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x051e2cc7Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048   104857599    52427776   8e  Linux LVMCommand (m for help): w
The partition table has been altered!Calling ioctl() to re-read partition table.
Syncing disks.
[root@runsdata-test-0004 ~]# 

根据上面的步骤,再对另一个数据盘进行分区,执行如下:

分区:

[root@runsdata-test-0004 ~]# fdisk -l | grep dev
Disk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 sectors
/dev/vda1   *        2048    83884031    41940992   83  Linux
Disk /dev/vdb: 53.7 GB, 53687091200 bytes, 104857600 sectors
/dev/vdb1            2048   104857599    52427776   8e  Linux LVM
Disk /dev/vdc: 53.7 GB, 53687091200 bytes, 104857600 sectors
[root@runsdata-test-0004 ~]# 
[root@runsdata-test-0004 ~]# fdisk /dev/vdc
Welcome to fdisk (util-linux 2.23.2).Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x420d8007.Command (m for help): pDisk /dev/vdc: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x420d8007Device Boot      Start         End      Blocks   Id  SystemCommand (m for help): n
Partition type:p   primary (0 primary, 0 extended, 4 free)e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-104857599, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-104857599, default 104857599): 
Using default value 104857599
Partition 1 of type Linux and of size 50 GiB is setCommand (m for help): w
The partition table has been altered!Calling ioctl() to re-read partition table.
Syncing disks.
[root@runsdata-test-0004 ~]# 

设置为LVM

[root@runsdata-test-0004 ~]# fdisk /dev/vdc
Welcome to fdisk (util-linux 2.23.2).Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.Command (m for help): pDisk /dev/vdc: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x420d8007Device Boot      Start         End      Blocks   Id  System
/dev/vdc1            2048   104857599    52427776   83  LinuxCommand (m for help): t
Selected partition 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'Command (m for help): pDisk /dev/vdc: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x420d8007Device Boot      Start         End      Blocks   Id  System
/dev/vdc1            2048   104857599    52427776   8e  Linux LVMCommand (m for help): w
The partition table has been altered!Calling ioctl() to re-read partition table.
Syncing disks.
[root@runsdata-test-0004 ~]# 

创建物理卷 PV

安装pv系列命令, yum install lvm2 -y

阿里云的服务器默认没有安装pv的相关命令的。

[root@runsdata-test-0004 ~]# pvcreate
-bash: pvcreate: command not found
[root@runsdata-test-0004 ~]# 

需要安装一下lvm2的工具如下:

[root@server81 ~]# rpm -qa | grep lvm
lvm2-2.02.171-8.el7.x86_64
lvm2-libs-2.02.171-8.el7.x86_64
[root@server81 ~]# 

安装如下:

[root@runsdata-test-0004 ~]# yum install lvm2 -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package lvm2.x86_64 7:2.02.180-10.el7_6.2 will be installed
.... 省略 ....Installed:lvm2.x86_64 7:2.02.180-10.el7_6.2                                                                   Dependency Installed:device-mapper-event.x86_64 7:1.02.149-10.el7_6.2                                                    device-mapper-event-libs.x86_64 7:1.02.149-10.el7_6.2                                               device-mapper-persistent-data.x86_64 0:0.7.3-3.el7                                                  libaio.x86_64 0:0.3.109-13.el7                                                                      lvm2-libs.x86_64 7:2.02.180-10.el7_6.2                                                              Dependency Updated:device-mapper.x86_64 7:1.02.149-10.el7_6.2      device-mapper-libs.x86_64 7:1.02.149-10.el7_6.2     Complete!
[root@runsdata-test-0004 ~]# 
[root@runsdata-test-0004 ~]# rpm -qa | grep lvm
lvm2-libs-2.02.180-10.el7_6.2.x86_64
lvm2-2.02.180-10.el7_6.2.x86_64
[root@runsdata-test-0004 ~]# 
[root@runsdata-test-0004 ~]# pv
pv         pvck       pvdisplay  pvremove   pvs        
pvchange   pvcreate   pvmove     pvresize   pvscan     
[root@runsdata-test-0004 ~]# pv

从上面可以看出已经安装好了lvm所需要的工具了。那么下面来继续配置。

创建物理卷:选择自己要创建的分区

[root@runsdata-test-0004 ~]# fdisk -l | grep dev
Disk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 sectors
/dev/vda1   *        2048    83884031    41940992   83  Linux
Disk /dev/vdb: 53.7 GB, 53687091200 bytes, 104857600 sectors
/dev/vdb1            2048   104857599    52427776   8e  Linux LVM
Disk /dev/vdc: 53.7 GB, 53687091200 bytes, 104857600 sectors
创建物理卷
[root@runsdata-test-0004 ~]# pvcreate /dev/vdb1 Physical volume "/dev/vdb1" successfully created.
[root@runsdata-test-0004 ~]# 
[root@runsdata-test-0004 ~]# 
删除物理卷
pvremove /dev/vdb1

查看创建好的物理卷

[root@runsdata-test-0004 ~]# pvsPV         VG Fmt  Attr PSize   PFree  /dev/vdb1     lvm2 ---  <50.00g <50.00g
[root@runsdata-test-0004 ~]# 
[root@runsdata-test-0004 ~]# pvdisplay "/dev/vdb1" is a new physical volume of "<50.00 GiB"--- NEW Physical volume ---PV Name               /dev/vdb1VG Name               PV Size               <50.00 GiBAllocatable           NOPE Size               0   Total PE              0Free PE               0Allocated PE          0PV UUID               oMzorH-1mfB-0VEy-eZDB-HHU3-UM9C-0EoPTU[root@runsdata-test-0004 ~]# 
  • PE(physical extent):物理区域是物理卷中可用于分配的最小存储单元,物理区域大小在建立卷组时指定,一旦确定不能更改,同一卷组所有物理卷的物理区域大小需一致,新的pv加入到vg后,pe的大小自动更改为vg中定义的pe大小。
  • LE(logical extent):逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。
  • 卷组描述区域:卷组描述区域存在于每个物理卷中,用于描述物理卷本身、物理卷所属卷组、卷组中逻辑卷、逻辑卷中物理区域的分配等所有信息,它是在使用pvcreate建立物理卷时建立的。

根据上面的步骤,再给另一个数据盘创建PV

[root@runsdata-test-0004 ~]# fdisk -l | grep dev
Disk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 sectors
/dev/vda1   *        2048    83884031    41940992   83  Linux
Disk /dev/vdb: 53.7 GB, 53687091200 bytes, 104857600 sectors
/dev/vdb1            2048   104857599    52427776   8e  Linux LVM
Disk /dev/vdc: 53.7 GB, 53687091200 bytes, 104857600 sectors
/dev/vdc1            2048   104857599    52427776   8e  Linux LVM
[root@runsdata-test-0004 ~]# 
[root@runsdata-test-0004 ~]# pvcreate /dev/vdc1 Physical volume "/dev/vdc1" successfully created.
[root@runsdata-test-0004 ~]# 
[root@runsdata-test-0004 ~]# pvsPV         VG       Fmt  Attr PSize   PFree  /dev/vdb1  vgdocker lvm2 a--  <50.00g <50.00g/dev/vdc1           lvm2 ---  <50.00g <50.00g
[root@runsdata-test-0004 ~]# 
[root@runsdata-test-0004 ~]# pvdisplay --- Physical volume ---PV Name               /dev/vdb1VG Name               vgdockerPV Size               <50.00 GiB / not usable 3.00 MiBAllocatable           yes PE Size               4.00 MiBTotal PE              12799Free PE               12799Allocated PE          0PV UUID               oMzorH-1mfB-0VEy-eZDB-HHU3-UM9C-0EoPTU"/dev/vdc1" is a new physical volume of "<50.00 GiB"--- NEW Physical volume ---PV Name               /dev/vdc1VG Name               PV Size               <50.00 GiBAllocatable           NOPE Size               0   Total PE              0Free PE               0Allocated PE          0PV UUID               nzkwWq-h4KK-2g64-aAqT-3Ugz-qvrj-bq4GR3[root@runsdata-test-0004 ~]# 

创建卷组,用于管理PV以及LV

vg系列命令

[root@runsdata-test-0004 ~]# vg
vgcfgbackup    vgconvert      vgextend       vgmknodes      vgs            
vgcfgrestore   vgcreate       vgimport       vgreduce       vgscan         
vgchange       vgdisplay      vgimportclone  vgremove       vgsplit        
vgck           vgexport       vgmerge        vgrename       
[root@runsdata-test-0004 ~]# vg

创建卷组VG,名字可以随意起

这个卷组我是专门给docker以及data存储数据使用的,那么就命名为vgdata。 下面就创建一个vgdata的卷组,然后使用vgs以及vgdisplay查看一下创建后的信息。

[root@runsdata-test-0004 ~]# vgcreate vgdocker /dev/vdb1  ## 测试创建一下Volume group "vgdocker" successfully created
[root@runsdata-test-0004 ~]# 
[root@runsdata-test-0004 ~]# vgremove vgdocker   ## 删除之前创建的Volume group "vgdocker" successfully removed## 将前面的两个PV创建到vgdata的逻辑组中。
[root@runsdata-test-0004 ~]# vgcreate vgdata /dev/vdc1 /dev/vdb1  Volume group "vgdata" successfully created
[root@runsdata-test-0004 ~]# ## 查看vg的信息
[root@runsdata-test-0004 ~]# vgsVG     #PV #LV #SN Attr   VSize  VFree vgdata   2   0   0 wz--n- 99.99g 99.99g
[root@runsdata-test-0004 ~]# ## 查看vg的详细信息
[root@runsdata-test-0004 ~]# vgdisplay --- Volume group ---VG Name               vgdataSystem ID             Format                lvm2Metadata Areas        2Metadata Sequence No  1VG Access             read/writeVG Status             resizableMAX LV                0Cur LV                0Open LV               0Max PV                0Cur PV                2Act PV                2VG Size               99.99 GiBPE Size               4.00 MiBTotal PE              25598Alloc PE / Size       0 / 0   Free  PE / Size       25598 / 99.99 GiBVG UUID               52PHwY-0a16-1yPo-EYNE-YUv0-4LJx-CWZsZS[root@runsdata-test-0004 ~]# 

创建好了卷组之后,下面就要创建逻辑卷了。

创建逻辑卷LV

首先查看一下lvcreate的相关命令参数

[root@runsdata-test-0004 ~]#  lvcreate --helplvcreate - Create a logical volume

现在我打算给docker使用的逻辑卷使用50G左右,data目录使用逻辑卷50G左右。那么就需要创建两个50G大小的逻辑卷。

## 创建大小50G名称docker的lv ,-L 指定大小,-n指定名称
[root@runsdata-test-0004 ~]# lvcreate -L 50G -n docker vgdataLogical volume "docker" created.
[root@runsdata-test-0004 ~]# 
## 再创建一个50G的data逻辑卷报错,提示空间不足了,因为逻辑组只有 < 99G 的大小
[root@runsdata-test-0004 ~]# lvcreate -L 50G -n data vgdataVolume group "vgdata" has insufficient free space (12798 extents): 12800 required.
[root@runsdata-test-0004 ~]# 
## 那么就创建一个49G的data逻辑卷LV
[root@runsdata-test-0004 ~]# lvcreate -L 49G -n data vgdataLogical volume "data" created.
[root@runsdata-test-0004 ~]# 

查看逻辑卷LV的信息

[root@runsdata-test-0004 ~]# lvdisplay --- Logical volume ---LV Path                /dev/vgdata/dockerLV Name                dockerVG Name                vgdataLV UUID                XWcgud-iAYP-j2Mo-x8kq-SjQ2-edP2-Usa4RZLV Write Access        read/writeLV Creation host, time runsdata-test-0004, 2018-12-10 13:57:01 +0800LV Status              available# open                 0LV Size                50.00 GiBCurrent LE             12800Segments               2Allocation             inheritRead ahead sectors     auto- currently set to     8192Block device           252:0--- Logical volume ---LV Path                /dev/vgdata/dataLV Name                dataVG Name                vgdataLV UUID                HVfQpR-Zs81-RFiZ-rAFC-lBMk-bMhe-MTB1zlLV Write Access        read/writeLV Creation host, time runsdata-test-0004, 2018-12-10 13:58:36 +0800LV Status              available# open                 0LV Size                49.00 GiBCurrent LE             12544Segments               1Allocation             inheritRead ahead sectors     auto- currently set to     8192Block device           252:1[root@runsdata-test-0004 ~]# 

那么这时候已经有docker、data两个逻辑卷了,下面就是进行格式化,目录的挂载了。

逻辑卷格式化

  • 执行lvdisplay查看逻辑卷信息,获取逻辑卷LV的Path
  • 对逻辑卷进行格式化mkfs.ext4 /dev/vgdata/docker

img

## 查看lv的详细信息
[root@runsdata-test-0004 ~]# lvdisplay --- Logical volume ---LV Path                /dev/vgdata/dockerLV Name                dockerVG Name                vgdataLV UUID                XWcgud-iAYP-j2Mo-x8kq-SjQ2-edP2-Usa4RZLV Write Access        read/writeLV Creation host, time runsdata-test-0004, 2018-12-10 13:57:01 +0800LV Status              available# open                 0LV Size                50.00 GiBCurrent LE             12800Segments               2Allocation             inheritRead ahead sectors     auto- currently set to     8192Block device           252:0--- Logical volume ---LV Path                /dev/vgdata/dataLV Name                dataVG Name                vgdataLV UUID                HVfQpR-Zs81-RFiZ-rAFC-lBMk-bMhe-MTB1zlLV Write Access        read/writeLV Creation host, time runsdata-test-0004, 2018-12-10 13:58:36 +0800LV Status              available# open                 0LV Size                49.00 GiBCurrent LE             12544Segments               1Allocation             inheritRead ahead sectors     auto- currently set to     8192Block device           252:1## 对逻辑卷进行ext4格式化
[root@runsdata-test-0004 ~]# mkfs.ext4 /dev/vgdata/docker 
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
3276800 inodes, 13107200 blocks
655360 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2162163712
400 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done   ## 对逻辑卷进行ext4格式化
[root@runsdata-test-0004 ~]# mkfs.ext4 /dev/vgdata/data 
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
3211264 inodes, 12845056 blocks
642252 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2162163712
392 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done   [root@runsdata-test-0004 ~]# 

挂载文件目录

[root@runsdata-test-0004 ~]# cd /
[root@runsdata-test-0004 /]# ls
bin   dev  home  lib64       media  opt   root  sbin  sys  usr
boot  etc  lib   lost+found  mnt    proc  run   srv   tmp  var
[root@runsdata-test-0004 /]# mkdir docker
[root@runsdata-test-0004 /]# 
[root@runsdata-test-0004 /]# mount /dev/vgdata/docker docker
[root@runsdata-test-0004 /]# 
[root@runsdata-test-0004 /]# mkdir data
[root@runsdata-test-0004 /]# 
[root@runsdata-test-0004 /]# mount /dev/vgdata/data data
[root@runsdata-test-0004 /]# 
[root@runsdata-test-0004 /]# df -h
Filesystem                 Size  Used Avail Use% Mounted on
/dev/vda1                   40G  1.5G   36G   4% /
devtmpfs                   7.8G     0  7.8G   0% /dev
tmpfs                      7.8G     0  7.8G   0% /dev/shm
tmpfs                      7.8G  352K  7.8G   1% /run
tmpfs                      7.8G     0  7.8G   0% /sys/fs/cgroup
tmpfs                      1.6G     0  1.6G   0% /run/user/0
/dev/mapper/vgdata-docker   50G   53M   47G   1% /docker
/dev/mapper/vgdata-data     49G   53M   46G   1% /data
[root@runsdata-test-0004 /]# 

可以看到 /docker 和 /data 目录已经使用上了。

测试写入文件看看。

[root@runsdata-test-0004 /]# cd /docker/
[root@runsdata-test-0004 docker]# pwd
/docker
[root@runsdata-test-0004 docker]# ls
lost+found
[root@runsdata-test-0004 docker]# 
[root@runsdata-test-0004 docker]# echo 123 > 1.txt
[root@runsdata-test-0004 docker]# ls
1.txt  lost+found
[root@runsdata-test-0004 docker]# cat 1.txt 
123
[root@runsdata-test-0004 docker]# 

好了,写到这里基本上已经可以了,但是如果服务器重启的话,是无法自动挂载上/docker和/data目录的。

下面来设置一下磁盘开机的自动挂载。

设置磁盘开机自动挂载,配置/etc/fstab文件

需要让系统开机自动挂载,需要将挂载信息写入到/etc/fstab文件中。

img

[root@runsdata-test-0004 docker]# vim /etc/fstab #
# /etc/fstab
# Created by anaconda on Sun Oct 15 15:19:00 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=eb448ab..省略...6a31 /                       ext4    defaults        1 1
/dev/mapper/vgdata-docker /docker ext4    defaults        1 1
/dev/mapper/vgdata-data   /data   ext4    defaults        1 1
此处挂载的文件系统名字是通过df -h查看得到的

然后进行重启reboot测试一下。

img

reboot测试

LVM管理的好处就是灵活得扩容、管理磁盘,后续可以再写一个扩容磁盘的篇章。

扩容部分

1.把新增的分区改为LVM格式,(设置为8e格式,和前面添加分区时一致)
fdisk /dev/vda

p查看分区 n创建分区 t改分区类型(8e为LVM) m显示帮助 w保存退出

reboot重启生效

2.将分区创建为PV
pvcreate /dev/vda3 #vda3为分区名

3.选择PV加入到VG
vgextend vgname /dev/vda3

4.扩容LV
lvextend -l +100%FREE /dev/mapper//dev/mapper/vg0-usr (这个名字通过df -h查看得到)

全部加入到Lg组中

lvextend -L +2G /dev/mapper/vg0-usr

5.重新调整分区大小

EXT4

// 执行调整

resize2fs /dev/mapper/vg0-usr

xfs

// 执行调整
xfs_growfs  /dev/mapper/vg0-usr
#创建物理卷,将新增磁盘加入到物理卷。
[root@Template ~]# pvcreate /dev/sdbPhysical volume "/dev/sdb" successfully created##查看物理卷。
[root@Template ~]# pvsPV         VG          Fmt  Attr PSize  PFree /dev/sda2  vg_template lvm2 a--u 39.51g     0 /dev/sdb               lvm2 ---- 20.00g 20.00g##查看物理卷信息。
[root@Template ~]# pvdisplay --- Physical volume ---PV Name               /dev/sda2VG Name               vg_templatePV Size               39.51 GiB / not usable 3.00 MiBAllocatable           yes (but full)PE Size               4.00 MiBTotal PE              10114Free PE               0Allocated PE          10114PV UUID               A6Ai9a-LdqF-GbCn-p0DF-3V3X-j3h1-KfvlI4"/dev/sdb" is a new physical volume of "20.00 GiB"--- NEW Physical volume ---PV Name               /dev/sdbVG Name               PV Size               20.00 GiBAllocatable           NOPE Size               0   Total PE              0Free PE               0Allocated PE          0PV UUID               sxgFvu-x0au-8CxD-g6I6-yCJe-M9gg-Ax2jiu##扩展卷组vg_template,即将PV加入卷组(VG)。
[root@Template ~]# vgextend vg_template /dev/sdbVolume group "vg_template" successfully extended###先查看vg信息,然后将原/dev/vg_template/lv_root 逻辑卷的大小增加。
[root@Template ~]# vgdisplay --- Volume group ---VG Name               vg_templateSystem ID             Format                lvm2Metadata Areas        2Metadata Sequence No  4VG Access             read/writeVG Status             resizableMAX LV                0Cur LV                2Open LV               2Max PV                0Cur PV                2Act PV                2VG Size               59.50 GiBPE Size               4.00 MiBTotal PE              15233Alloc PE / Size       10114 / 39.51 GiBFree  PE / Size       5119 / 20.00 GiBVG UUID               p5VnUJ-vdh9-7ffb-guxI-97sR-GnzU-rwzyc4###运行扩容命令,对/dev/vg_template/lv_root逻辑卷进行扩容
[root@Template vg_template]# lvextend -l +100%FREE /dev/mapper/vg_template-lv_root###查看分区格式,如果分区格式是ext,用resize2fs扩容;如果分区格式是xfs,用xfs_growfs扩容。命令如下:[root@node172 ~]# df -ThFilesystem                      Type            Size  Used Avail Use% Mounted on/dev/mapper/vg_root-lv_root     xfs             930G   70G  861G   8% /
###然后运行resize2fs命令 对容量重新扩容。
[root@Template vg_template]# resize2fs /dev/mapper/vg_template-lv_root####xfs格式的分区用xfs_growfs 命令对容量重新扩容。
[root@sz_012 ~]# xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=28311552 blks=                       sectsz=4096  attr=2, projid32bit=1=                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=113246208, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=55296, version=2=                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 113246208 to 932805632##查看空间是否增大。
[root@Template vg_template]# df -Th

一、 LVM概述

  • Linux 系统中,我们经常使用 LVM (逻辑卷管理)的方式去管理和使用磁盘, LVM 可以动态扩容,给我们的使用带来了很多的便捷性

  • LVM结构图如下:

    img

    image.png

    • 物理卷(Physical Volume,PV)
      指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
    • 卷组(Volume Group,VG)
      类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)。
    • 逻辑卷(Logical Volume,LV)
      类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。

二、lV扩容实施步骤

1、VG空间

在LV扩容之前,需要查看VG的空间是否能够满足LV扩容的要求,如果不满足,则需要先对VG进行扩容。

  • 查看vg的信息
[root@yunwei ~]# vgsVG          #PV #LV #SN Attr   VSize  VFreedata          2   1   0 wz--n-  1.29t 1.00tvg_datahost   1   2   0 wz--n- 99.51g    0 
[root@yunwei ~]#

1.2 VG空间满足条件的情况下LV扩容

  • 如果VG的空间满足LV的情况下,LV扩容方式如下
[root@yunwei ~]# lvextend -L +1GB /dev/data/lv-dataExtending logical volume lv-data to 1.29 TiBLogical volume lv-data successfully resized
[root@yunwei ~]# vgsVG          #PV #LV #SN Attr   VSize  VFree   data          2   1   0 wz--n-  1.29t 1016.00mvg_datahost   1   2   0 wz--n- 99.51g       0 
[root@yunwei ~]# 

1.3 VG空间不满足的条件下LV扩容

  • 如果VG不满足条件的情况下,需要对LV进行扩容,那么就需要先对VG进行扩容
[root@yunwei ~]# vgextend data /dev/sdc
1.3.1 LV扩容
  • 查看df的空间
[root@yunwei ~]# df -h
Filesystem                       Size  Used Avail Use% Mounted on
/dev/mapper/vg_datahost-lv_root   91G  3.1G   83G   4% /
tmpfs                            3.9G  224K  3.9G   1% /dev/shm
/dev/vdb1                        485M   39M  421M   9% /boot
/dev/mapper/data-lv--data        295G  172G  108G  62% /data
[root@yunwei ~]# 
  • LV扩容
[root@data-host ~]# lvextend -L +1024GB /dev/data/lv-data /dev/vdc Extending logical volume lv-data to 1.29 TiBLogical volume lv-data successfully resized
- /dev/data/lv-data:data为VG的名称,lv-data为LV的名称
- /dev/vdc:使用哪块PV的空间进行扩容
  • 查看df空间
    发现容量没有变化
[root@yunwei ~]# df -h
Filesystem                       Size  Used Avail Use% Mounted on
/dev/mapper/vg_datahost-lv_root   91G  3.1G   83G   4% /
tmpfs                            3.9G  224K  3.9G   1% /dev/shm
/dev/vdb1                        485M   39M  421M   9% /boot
/dev/mapper/data-lv--data        295G  172G  108G  62% /data
1.3.2 重新加载逻辑卷
  • 重新加载逻辑卷,使LV扩容生效(会有点慢)
[root@yunwei ~]# resize2fs /dev/data/lv-data 
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/data/lv-data is mounted on /data; on-line resizing required
old desc_blocks = 19, new_desc_blocks = 83
Performing an on-line resize of /dev/data/lv-data to 346816512 (4k) blocks.The filesystem on /dev/data/lv-data is now 346816512 blocks long.[root@yunwei ~]# 
  • 再查看df容量
    可以看到/data/的空间已经变成了1.3T
[root@data-host ~]# df -h
Filesystem                       Size  Used Avail Use% Mounted on
/dev/mapper/vg_datahost-lv_root   91G  3.1G   83G   4% /
tmpfs                            3.9G  224K  3.9G   1% /dev/shm
/dev/vdb1                        485M   39M  421M   9% /boot
/dev/mapper/data-lv--data        1.3T  172G  1.1T  14% /data

作者:运维少年
链接:https://www.jianshu.com/p/4c7acf819046
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/859349.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iostat命令详解

iostat命令详解 简介 iostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。 iostat可以提供更丰富的IO性能状态数据,i…

学习笔记(四十九):Text常用场景

1、设置文本断行及折行Text(this.content).fontSize(14).textAlign(TextAlign.End).textOverflow({ overflow: TextOverflow.Ellipsis }).wordBreak(WordBreak.BREAK_WORD).maxLines(this.contentMaxLine) 作者:听着music睡出处:http://www.cnblogs.com/xqxacm/Android交流群…

VS2022 + OpenSSL 3.0实现DES、AES、RSA加密

​ 一、DES加密 #include <openssl/des.h> #include <cstdio> #include <iostream> #include <cstdlib> #include <iomanip> #define MAX_LINE 1024 #pragma warning(disable : 4996)using namespace std;signed main() {const_DES_cblock key …

SARscape洪水分类工具使用说明

SARscape6.1新增洪水分类工具,可以从多时相SAR数据提取洪水信息。工具主要使用了模糊分类技术——模糊C均值分类器(FCM),可加入坡度参数去除阴影的影响。 本文以洪水前后哨兵1数据为例,介绍洪水分类工具的使用。如下图为洪水发生前后两期已经经过预处理的后向散射系数图像…

汽车以旧换新政策的数字化协同解决方案

随着《汽车以旧换新补贴政策》的落地实施,汽车市场迎来了新的增长机遇。政策驱动与市场竞争的双重压力下,如何在短时间内整合资源、抢占市场先机,成为汽车经销商和销售团队的共同挑战。借助在线协同工具,企业能够打破部门与组织边界,实现从政策到执行全流程的高效管理,为…

36MT160-ASEMI开关电源整流方桥36MT160

36MT160-ASEMI开关电源整流方桥36MT160编辑:ll 36MT160-ASEMI开关电源整流方桥36MT160 型号:36MT160 品牌:ASEMI 封装:D-63 特性:插件整流方桥 正向电流:35A 反向耐压:1600V 恢复时间:>2000ns 引脚数量:5 芯片个数:4 芯片尺寸:50MIL 浪涌电流:500A 漏电流:>10…

java8--方法--格式化输出--printf

System.out.printf("%,.2f",10000.0 / 3.0); 效果图:ps: 在分隔符后可以指定字符串长度 System.out.printf("%,10.2f",10000.0 / 3.0); 效果图:

JDBC核心6步

1JDBC简介 java DataBase Connectivity,又称java数据库连接是独立于任何数据库管理系统的api java提供接口规范,由各个数据库厂商提供接口的实现,厂商提供的实现封装成jar文件,也就是我们俗称的数据库驱动jar包 学习JDBC,充分体现了面向接口编程的好处2.JDBC核心6步 1.注册…

【python应用】基于 Python 的远程管理工具:PyChi 远程管理系统

一、引言 在现代 IT 环境中,远程管理工具是开发者和运维人员必不可少的利器。本文将为大家介绍一个基于 Python 构建的多功能远程管理工具 PyChi,它能够让你轻松地对远程客户端进行管理操作,包括文件管理、系统命令执行、截图、录音等功能。二、软件简介 PyChi 是一个基于异…

Hexo-Github-pages-实现个人博客

Hexo + Github pages 实现个人博客 一、过程总览和回顾 我是新手,2024/12/21号尝试着自己搭建自己的个人博客网站,起初是只想着在自己本地电脑环境上搭建 一开始使用了Hugo,据说是世界上最快的静态网页生成器,但是捣鼓了一个下午,无功而返第一个原因:阅读官方文档不够仔细…

AI智能分析视频分析网关热知识:视频分析技术如何帮助提升城市公共安全?

城市公共安全是社会发展的重要基础,而视频分析技术的应用为提升这一领域的效率和效果提供了强有力的支持。随着城市化进程的加快,公共安全面临的挑战日益增多,如何有效监控和管理城市环境中的安全隐患,已成为城市管理者亟待解决的问题。接下来,我们将详细探讨视频分析技术…

quietflow.js-jquery背景层动画插件

quietflow.js是一款可以制作炫酷页面背景层动画效果的jquery插件。该jquery插件内置了9种不同效果的背景层动画,你可以为页面轻松的添加背景动画效果。 可用的背景层动画效果有:squareFlash vortex bouncingBalls shootingLines simpleGradient starfield layeredTriangles c…