背景,之前的 pg 数据库数据目录使用的是物理盘,不支持扩展,随着数据增大,磁盘空间告警,现在需要将新的磁盘制作成逻辑卷,以便之后扩展使用。

之前使用的数据目录为 /u01

停止数据库

停止数据库

停止数据库

1添加2块新的磁盘

#新添加了2块磁盘 sdb 和 sdc
[root@pgmaster ~]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   50G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   49G  0 part 
  ├─centos-root 253:0    0 45.1G  0 lvm  /
  └─centos-swap 253:1    0  3.9G  0 lvm  [SWAP]
sdb               8:16   0   25G  0 disk 
sdc               8:32   0   25G  0 disk 
sr0              11:0    1 1024M  0 rom  
loop0             7:0    0  9.5G  0 loop /mnt

2制作第一块盘为lvm

#给磁盘分区
[root@pgmaster ~]# fdisk /dev/sdb 
#输入
n
p
1
回车
回车
w

[root@pgmaster ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   50G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   49G  0 part 
  ├─centos-root 253:0    0 45.1G  0 lvm  /
  └─centos-swap 253:1    0  3.9G  0 lvm  [SWAP]
sdb               8:16   0   25G  0 disk 
└─sdb1            8:17   0   25G  0 part 
sdc               8:32   0   25G  0 disk 
sr0              11:0    1 1024M  0 rom  
loop0             7:0    0  9.5G  0 loop /mnt
#创建卷组
[root@pgmaster ~]# vgcreate pgdataVg /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.
  Volume group "pgdataVg" successfully created
#创建逻辑卷
#报错 有的版本不支持
[root@pgmaster ~]# lvcreate --size 100%FREE -n pgdataLVM pgdataVg
  Can't parse size argument.
  Invalid argument for --size: 100%FREE
  Error during parsing of command line.

#上面命令报错了,我们指定大小重新创建
[root@pgmaster ~]# lvcreate -L 24G -n pgdataLVM pgdataVg
  Logical volume "pgdataLVM" created.

#查看lvm
[root@pgmaster ~]# lsblk
NAME                   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                      8:0    0   50G  0 disk 
├─sda1                   8:1    0    1G  0 part /boot
└─sda2                   8:2    0   49G  0 part 
  ├─centos-root        253:0    0 45.1G  0 lvm  /
  └─centos-swap        253:1    0  3.9G  0 lvm  [SWAP]
sdb                      8:16   0   25G  0 disk 
└─sdb1                   8:17   0   25G  0 part 
  └─pgdataVg-pgdataLVM 253:2    0   24G  0 lvm  
sdc                      8:32   0   25G  0 disk 
sr0                     11:0    1 1024M  0 rom  
loop0                    7:0    0  9.5G  0 loop /mnt

#格式化逻辑卷
[root@pgmaster ~]# mkfs.xfs /dev/pgdataVg/pgdataLVM
meta-data=/dev/pgdataVg/pgdataLVM isize=512    agcount=4, agsize=1572864 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=6291456, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=3072, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

#挂载
#使用uuid或者直接使用 /dev/pgdataVg/pgdataLVM 挂载

#查看uuid
[root@pgmaster ~]# blkid /dev/pgdataVg/pgdataLVM
/dev/pgdataVg/pgdataLVM: UUID="e3a84235-9a93-4ff4-ae57-118d9997654d" TYPE="xfs"

3挂载逻辑卷

停止数据库

停止数据库

停止数据库

#创建挂载目录,将之前的目录备份
[root@pgmaster ~]# mv /u01 /u01_old

[root@pgmaster ~]# mkdir /u01
#书写配置,开机自动挂载
[root@pgmaster ~]# cat >> /etc/fstab << 'EOF'

UUID=e3a84235-9a93-4ff4-ae57-118d9997654d /u01 xfs defaults 0 0
EOF
#挂载并验证
[root@pgmaster ~]# mount -a

[root@pgmaster ~]# df -h
文件系统                        容量  已用  可用 已用% 挂载点
devtmpfs                        1.9G     0  1.9G    0% /dev
tmpfs                           1.9G     0  1.9G    0% /dev/shm
tmpfs                           1.9G   12M  1.9G    1% /run
tmpfs                           1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root          46G   12G   34G   25% /
/dev/loop0                      9.5G  9.5G     0  100% /mnt
/dev/sda1                      1014M  151M  864M   15% /boot
tmpfs                           378M     0  378M    0% /run/user/0
/dev/mapper/pgdataVg-pgdataLVM   24G   33M   24G    1% /u01
#同步数据到新挂载的目录
yum -y install rsync.x86_64

[root@pgmaster ~]# rsync -av --delete /u01_old/ /u01/

启动数据库并验证

4添加第二块盘

停止数据库
停止数据库
停止数据库

#分区
[root@pgmaster ~]# fdisk /dev/sdc
n
p
1
回车
回车
w
#新分区初始化为物理卷
[root@pgmaster ~]# pvcreate /dev/sdc1
  Physical volume "/dev/sdc1" successfully created.

#将新物理卷添加到现有的卷组中
[root@pgmaster ~]# vgextend pgdataVg /dev/sdc1
  Volume group "pgdataVg" successfully extended

#查看卷组可用空间
[root@pgmaster ~]# vgdisplay pgdataVg
  --- Volume group ---
  VG Name               pgdataVg
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               49.99 GiB
  PE Size               4.00 MiB
  Total PE              12798
  Alloc PE / Size       6144 / 24.00 GiB
  Free  PE / Size       6654 / 25.99 GiB
  VG UUID               l6qKQb-RnAq-Uco7-NCr4-d9i6-C18a-JrwdpC


#使用lvdisplay /dev/vg_name/lv_name命令来查看逻辑卷lv_name的详细信息,包括其当前大小和是否可以在线扩展。
[root@pgmaster ~]# lvdisplay /dev/pgdataVg/pgdataLVM
  --- Logical volume ---
  LV Path                /dev/pgdataVg/pgdataLVM
  LV Name                pgdataLVM
  VG Name                pgdataVg
  LV UUID                8IbaiC-eZXm-KHUE-Oz5M-Vu0Z-Armg-8HFJu8
  LV Write Access        read/write
  LV Creation host, time pgmaster, 2024-06-27 15:39:35 +0800
  LV Status              available
  # open                 1
  LV Size                24.00 GiB
  Current LE             6144
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2

#扩展逻辑卷
[root@pgmaster ~]# lvextend -L +25G /dev/pgdataVg/pgdataLVM
  Size of logical volume pgdataVg/pgdataLVM changed from 24.00 GiB (6144 extents) to 49.00 GiB (12544 extents).
  Logical volume pgdataVg/pgdataLVM successfully resized.

#文件系统 resize:扩展逻辑卷后,逻辑卷上的文件系统也需要相应地扩大。这一步骤依赖于你使用的文件系统类型。对于大多数现代Linux系统上常见的文件系统(如ext4、xfs等),可以使用以下命令:
对于ext4文件系统:
resize2fs /dev/vg_name/lv_name

#xfs
[root@pgmaster ~]# xfs_growfs /dev/pgdataVg/pgdataLVM
meta-data=/dev/mapper/pgdataVg-pgdataLVM isize=512    agcount=4, agsize=1572864 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=6291456, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=3072, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 6291456 to 12845056

5启动数据库

#启动pg,测试
[root@pgmaster ~]# systemctl start postgresql-15.service

完成

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部