yuan-er

导航

 

本地SSD盘扩容方法

操作场景

本章介绍有实例的主机新增一块数据盘进行扩容的方法。

操作步骤

  1. 以root用户登录主机(也可使用非root用户登录主机,请使用sudo命令提权执行命令)。
  2. 执行lsblk命令,确保扩容的本地SSD盘已被主机识别到。

     

    以主机上有沙箱类型的实例、新增数据盘vdc进行扩容为例,回显如下所示,数据盘扩容路径为/var/chroot/var/lib/engine/data1。

     

  3. 执行如下命令,新建并打开脚本extend.sh。

     

    vi extend.sh

     

  4. 复制如下代码至extend.sh脚本中。

     

    #! /bin/bash
    new_disks=$1
    target=$2
    extend_size=$3
    # new_disk make sure the disk is valid. It can be a list(when split by ',').
    # target eg:/var/chroot/var/lib/engine/data1
     
    # show lsblk info, check the disk is managed by lvm or lvm2.
    read vg_name disk_type mount_point <<< $(echo $(lsblk -l|grep $target|awk {'print($ 1, $6,$7)'}))
    echo "lsblk info: $vg_name, $disk_type, $mount_point"
     
    if [[ $disk_type == lvm* ]]
    then
     echo "Type: $disk_type,  ..."
    else
     echo "It's not a lvm filesystem"
     exit 1
    fi
     
    # split the new_disks
    disk_list=(`echo $new_disks |tr ',' ' '`)
     
    # ready to create a pv one by one.
    for new_disk in ${disk_list[@]}
    do
       # cmd : pvcreate /dev/sdc
       pvcreate $new_disk
    done
     
    # pv without vg_group
    echo "--------------------"
    echo "$(pvs)"
    echo "--------------------"
     
    # vg extend volume one by one
    for new_disk in ${disk_list[@]}
    do
       # cmd : vgextend gaussdbvg /dev/sdc
       vgextend gaussdbvg $new_disk
    done
     
    # figure out the target mount_point's FileSystem.
    read file_system <<< $(df -h |grep $target |awk {'print($1)'})
    echo "The $target 's mapper is: $file_system ."
     
    # cmd : 100% vg free; lvextend -l  +100%FREE /dev/mapper/gaussdbvg-mydata1
    #   lvextend -l +100%FREE $file_system , should be sum(new_disks)
    for new_disk in ${disk_list[@]}
    do
        # cmd : vgextend gaussdbvg /dev/sdc
        read size <<< $(echo $(fdisk -l|grep -w $new_disk |awk {'print($3)'}))
        lvextend -L +$extend_size""G $file_system
    done
    resize2fs $file_system
     

     

  5. “Esc”键后执行如下命令,保存并退出extend.sh脚本。

     

    :wq!

  6. 执行如下命令,执行extend.sh脚本,以扩容盘vdc为例,扩容100GB。

     

    chmod +x extend.sh; ./extend.sh /dev/vdc /var/chroot/var/lib/engine/data1 100;

    该脚本支持多盘扩容,以扩容盘vdc、vdd为例,命令如下所示。

    chmod +x extend.sh; ./extend.sh /dev/vdc,/dev/vdd /var/chroot/var/lib/engine/data1 100;

    注意,如果有多个数据盘扩容路径,请将扩容大小均分。

     

  7. 执行lsblk命令,检查扩容结果。

     

     

 
posted on 2025-06-27 15:38  数据库笔记  阅读(13)  评论(0)    收藏  举报