暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Linux操作系统新增卷组目录以及在线扩容

skylines 2025-09-19
17
对于一个服务器后台(数据库)运维人员,在Linux操作系统新增一个卷组目录以及目录在线扩容,也是常有的操作。在大的运维团队,分工比较细,可能不需要数据库的运维人员进行目录扩容这些操作,可能有操作系统运维人员操作了。以下就简单讲述一下在Linux操作系统创建物理卷组、逻辑卷以及将卷组挂载到新建目录,或者在线扩充到现有的目录上。
新建物理逻辑卷以及目录
查看可用存储设备
    [root@eachroom ~]#
    [root@eachroom ~]# lsblk
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    vda    253:0    0   40G  0 disk
    └─vda1 253:1    0   40G  0 part
    vdb    253:16   0  400G  0 disk

    存储设备划分分区(可以不作划分)

      [root@eachroom ~]# 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 0xf7bd955e.
      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):
      First sector (2048-838860799, default 2048):
      Using default value 2048
      Last sector, +sectors or +size{K,M,G} (2048-838860799, default 838860799): +400G
      Value out of range.
      Last sector, +sectors or +size{K,M,G} (2048-838860799, default 838860799): +409590M
      Partition 1 of type Linux and of size 400 GiB is set
      Command (m for help): w
      The partition table has been altered!
      Calling ioctl() to re-read partition table.
      Syncing disks.
      [root@eachroom ~]#
      [root@eachroom ~]# lsblk
      NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
      vda    253:0    0   40G  0 disk
      └─vda1 253:1    0   40G  0 part /
      vdb    253:16   0  400G  0 disk
      └─vdb1 253:17   0  400G  0 part
      [root@eachroom ~]#

      创建物理卷组

        [root@eachroom ~]# vgcreate contos-data /dev/vdb1
          Physical volume "/dev/vdb1" successfully created.
          Volume group "contos-data" successfully created
        [root@eachroom ~]#

        查看卷组信息

          [root@eachroom ~]# lvm
          lvm> vgdisplay
            --- Volume group ---
            VG Name               contos-data
            System ID
            Format                lvm2
            Metadata Areas        1
            Metadata Sequence No  1
            VG Access             read/write
            VG Status             resizable
            MAX LV                0
            Cur LV                0
            Open LV               0
            Max PV                0
            Cur PV                1
            Act PV                1
            VG Size               <399.99 GiB
            PE Size               4.00 MiB
            Total PE              102397
            Alloc PE / Size       0 / 0
            Free  PE / Size       102397 / <399.99 GiB
            VG UUID               LeuLp9-P0Tx-F1cU-Oxyg-G6Ce-T434-3BAzYe
          lvm>
          lvm>
          lvm> exit
            Exiting.
          [root@eachroom ~]#

          创建逻辑卷组

            [root@eachroom ~]# lvcreate -L 399G -n data-lv01 contos-data
              Logical volume "data-lv01" created.
            [root@eachroom ~]

            逻辑卷组名称:data-lv01

            物理卷组名称:contos-data

            这里就是将逻辑卷组添加到物理卷组里。如果在创建逻辑卷组过程没有指定物理卷组,系统自动帮你创建一个物理卷组,并将该逻辑卷组默认添加到这个物理卷组里。

            再次查看卷组信息

              [root@eachroom ~]# lvm
              lvm> vgdisplay
                --- Volume group ---
                VG Name               contos-data
                System ID
                Format                lvm2
                Metadata Areas        1
                Metadata Sequence No  2
                VG Access             read/write
                VG Status             resizable
                MAX LV                0
                Cur LV                1
                Open LV               0
                Max PV                0
                Cur PV                1
                Act PV                1
                VG Size               <399.99 GiB
                PE Size               4.00 MiB
                Total PE              102397
                Alloc PE / Size       102144 / 399.00 GiB
                Free  PE / Size       253 / 1012.00 MiB
                VG UUID               LeuLp9-P0Tx-F1cU-Oxyg-G6Ce-T434-3BAzYe
              lvm>
              lvm>
              lvm> exit
                Exiting.
              [root@eachroom ~]#
              [root@eachroom ~]#
              [root@eachroom ~]# lsblk
              NAME                        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
              vda                         253:0    0   40G  0 disk
              └─vda1                      253:1    0   40G  0 part /
              vdb                         253:16   0  400G  0 disk
              └─vdb1                      253:17   0  400G  0 part
                └─contos--data-data--lv01 252:0    0  399G  0 lvm
              [root@eachroom ~]#

              可以看到逻辑卷组已经创建成功。

              新建目录

                [root@eachroom ~]# mkdir /data
                [root@eachroom ~]#
                [root@eachroom ~]#
                [root@eachroom ~]# ls -lrt
                total 564
                -rw-r--r-- 1 root root 575048 Aug 15 10:22 zabbix-agent-6.0.30-release1.el7.x86_64.rpm
                [root@eachroom ~]# df -h
                Filesystem      Size  Used Avail Use% Mounted on
                devtmpfs         12G     0   12G   0/dev
                tmpfs            12G     0   12G   0% /dev/shm
                tmpfs            12G  8.7M   12G   1/run
                tmpfs            12G     0   12G   0% /sys/fs/cgroup
                /dev/vda1        40G  3.4G   35G   9/
                tmpfs           2.4G     0  2.4G   0% /run/user/1000
                [root@eachroom ~]#

                格式化新建的逻辑卷组

                  [root@eachroom ~]# mkfs.ext4 /dev/mapper/contos--data-data--lv01
                  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
                  26148864 inodes, 104595456 blocks
                  5229772 blocks (5.00%) reserved for the super user
                  First data block=0
                  Maximum filesystem blocks=2252341248
                  3192 block groups
                  32768 blocks per group32768 fragments per group
                  8192 inodes per group
                  Superblock backups stored on blocks:
                          327689830416384022937629491281920088473616056322654208,
                          409600079626241123942420480000238878727166361678675968,
                          102400000
                  Allocating group tables: done
                  Writing inode tables: done
                  Creating journal (32768 blocks): done
                  Writing superblocks and filesystem accounting information: done
                  [root@eachroom ~]#

                  这里将卷组格式化成ext4格式的文件。

                  挂载逻辑卷组到新建的目录

                    [root@eachroom ~]# mount /dev/contos-data/data-lv01 /data
                    [root@eachroom ~]# df -h
                    Filesystem                           Size  Used Avail Use% Mounted on
                    devtmpfs                              12G     0   12G   0% /dev
                    tmpfs                                 12G     0   12G   0% /dev/shm
                    tmpfs                                 12G  8.7M   12G   1% /run
                    tmpfs                                 12G     0   12G   0% /sys/fs/cgroup
                    /dev/vda1                             40G  3.4G   35G   9% /
                    tmpfs                                2.4G     0  2.4G   0% /run/user/1000
                    /dev/mapper/contos--data-data--lv01  393G   73M  373G   1% /data

                    编辑自动挂载

                      [root@eachroom ~]# vi /etc/fstab
                      /dev/contos-data/data-lv01                /data                   ext4    defaults        1 1

                      到此为止,已经是完成了卷组和目录创建。

                      已有目录在线扩容

                      查看可使用存储设备

                        [root@kbsnode01 ~]# lsblk
                        NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
                        sda               8:0    0   30G  0 disk 
                        ├─sda1            8:1    0    1G  0 part /boot
                        └─sda2            8:2    0   29G  0 part 
                          ├─centos-root 253:0    0   27G  0 lvm  /
                          └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
                        sdb               8:16   0   30G  0 disk 
                        sr0              11:0    1  4.4G  0 rom  /run/media/admin/CentOS 7 x86_64
                        [root@kbsnode01 ~]

                        这里看到有一块30G的sdb设备可用。

                        查看卷组信息

                          [root@kbsnode01 ~]# lvm
                          lvm> pvcreate /dev/sdb1
                            Physical volume "/dev/sdb1" successfully created.
                          lvm> 
                          lvm> pvdisplay
                            --- Physical volume ---
                            PV Name               /dev/sda2
                            VG Name               centos
                            PV Size               <29.00 GiB / not usable 3.00 MiB
                            Allocatable           yes 
                            PE Size               4.00 MiB
                            Total PE              7423
                            Free PE               1
                            Allocated PE          7422
                            PV UUID               uAzNfq-axBO-b1A2-uILr-iiih-I7yI-8ORmqg
                            "/dev/sdb1" is a new physical volume of "29.00 GiB"
                            --- NEW Physical volume ---
                            PV Name               /dev/sdb1
                            VG Name               
                            PV Size               29.00 GiB
                            Allocatable           NO
                            PE Size               0   
                            Total PE              0
                            Free PE               0
                            Allocated PE          0
                            PV UUID               rvGqkk-HQ04-ceFG-1NAk-XDJc-IAhT-kP5jge
                          lvm> 
                          lvm> vgdisplay
                            --- Volume group ---
                            VG Name               centos
                            System ID             
                            Format                lvm2
                            Metadata Areas        1
                            Metadata Sequence No  3
                            VG Access             read/write
                            VG Status             resizable
                            MAX LV                0
                            Cur LV                2
                            Open LV               2
                            Max PV                0
                            Cur PV                1
                            Act PV                1
                            VG Size               <29.00 GiB
                            PE Size               4.00 MiB
                            Total PE              7423
                            Alloc PE / Size       7422 / 28.99 GiB
                            Free  PE / Size       1 / 4.00 MiB
                            VG UUID               TmEeQp-aLi2-Wz2A-HgAK-suly-MFNf-VFiNC0
                          lvm> 

                          卷组扩容

                            lvm> vgextend centos /dev/sdb1
                              Volume group "centos" successfully extended
                            lvm> 
                            lvm> 
                            lvm> 
                            lvm> vgdisplay
                              --- Volume group ---
                              VG Name               centos
                              System ID             
                              Format                lvm2
                              Metadata Areas        2
                              Metadata Sequence No  4
                              VG Access             read/write
                              VG Status             resizable
                              MAX LV                0
                              Cur LV                2
                              Open LV               2
                              Max PV                0
                              Cur PV                2
                              Act PV                2
                              VG Size               57.99 GiB
                              PE Size               4.00 MiB
                              Total PE              14846
                              Alloc PE / Size       7422 / 28.99 GiB
                              Free  PE / Size       7424 / 29.00 GiB
                              VG UUID               TmEeQp-aLi2-Wz2A-HgAK-suly-MFNf-VFiNC0
                            lvm> 
                            lvm> lvextend -l +100%FREE /dev/centos/root
                              Size of logical volume centos/root changed from 26.99 GiB (6910 extents) to 55.99 GiB (14334 extents).
                              Logical volume centos/root successfully resized.
                            lvm> 
                            [root@kbsnode01 ~]# df -h
                            Filesystem               Size  Used Avail Use% Mounted on
                            devtmpfs                 893M     0  893M   0% /dev
                            tmpfs                    910M     0  910M   0% /dev/shm
                            tmpfs                    910M   11M  900M   2% /run
                            tmpfs                    910M     0  910M   0% /sys/fs/cgroup
                            /dev/mapper/centos-root   27G  4.1G   23G  16% /
                            /dev/sda1               1014M  187M  828M  19% /boot
                            tmpfs                    182M   24K  182M   1% /run/user/1000
                            /dev/sr0                 4.5G  4.5G     0 100% /run/media/admin/CentOS 7 x86_64
                            tmpfs                    182M     0  182M   0% /run/user/0
                            [root@kbsnode01 ~]

                            以上操作可以在操作系统交互模式下执行

                              [root@kbsnode01 ~]# vgextend centos /dev/sdb1
                              [root@kbsnode01 ~]# lvextend -l +100%FREE /dev/mapper/centos-root

                              格式化逻辑卷

                                [root@kbsnode01 ~]# xfs_growfs /dev/centos/root
                                meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=1768960 blks
                                         =                       sectsz=512   attr=2, projid32bit=1
                                         =                       crc=1        finobt=0 spinodes=0
                                data     =                       bsize=4096   blocks=7075840, imaxpct=25
                                         =                       sunit=0      swidth=0 blks
                                naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
                                log      =internal               bsize=4096   blocks=3455, version=2
                                         =                       sectsz=512   sunit=0 blks, lazy-count=1
                                realtime =none                   extsz=4096   blocks=0, rtextents=0
                                data blocks changed from 7075840 to 14678016
                                [root@kbsnode01 ~]
                                [root@kbsnode01 ~]
                                [root@kbsnode01 ~]# df -h
                                Filesystem               Size  Used Avail Use% Mounted on
                                devtmpfs                 893M     0  893M   0/dev
                                tmpfs                    910M     0  910M   0% /dev/shm
                                tmpfs                    910M   11M  900M   2/run
                                tmpfs                    910M     0  910M   0% /sys/fs/cgroup
                                /dev/mapper/centos-root   56G  4.1G   52G   8/
                                /dev/sda1               1014M  187M  828M  19/boot
                                tmpfs                    182M   24K  182M   1% /run/user/1000
                                /dev/sr0                 4.5G  4.5G     0 100/run/media/admin/CentOS 7 x86_64
                                tmpfs                    182M     0  182M   0/run/user/0
                                [root@kbsnode01 ~]

                                对比上一个卷组扩容的步骤,可以看到29G已经扩充到/目录。

                                在线扩容总的来说就是5个步骤:查看设备--查看卷组信息--扩展物理卷组--扩展逻辑卷--格式化逻辑卷。

                                  lsblk
                                  vgextend centos /dev/sdb1
                                  lvextend -l +100%FREE /dev/mapper/centos-root
                                  xfs_growfs /dev/mapper/centos-root

                                  如果是是使用的是ext4文件格式,则格式化的时候使用:

                                    resize2fs /dev/mapper/centos-root


                                    文章转载自skylines,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                    评论