最新公告
  • 欢迎您光临知事网软件APP资源下载站,一个优质的手机App应用商店和网站源码基地。欢迎加入永久SVIP
  • 阿里云linux服务器磁盘在线扩容以及扩容分区和文件系统,无损操作数据不丢失

    正文概述 知事网   2021-03-11 10:03:22   4117

    今天公司的阿里云服务器(服务器系统为centos 7 64位)硬盘不够用了,于是选购了阿里云的在线扩容云盘服务,在线扩容后在阿里云控制台查看云盘已经从原来的100G扩容到了140G,在SSH端用fdisk -l查看硬盘/etc/vdb/也确实扩容到了140G,但是用df -h查看分区挂载大小还是原来的100G。代表还需要在服务器内部进行扩容分区和扩容文件系统,这两个步骤是必须要操作的,否则云盘还是原来的大小,没办法使用新增加的空间。

    由于是centos系统,跟以前使用的Windows系统的磁盘扩容不一样,在Windows里面很简单,直接进入磁盘管理工具,进行扩展卷即可。在centos中会相对来说复杂一点点,毕竟是操作磁盘,稍有不慎,数据就会丢失,风险极大。公司的数据全部存在盘中,如果操作不慎造成数据丢失,罪孽深重啊。为了保险起见,请仔细阅读以下操作。

    一、创建磁盘快照备份

    由于磁盘存了100G数据,特别多而且很重要,必须在操作磁盘前进行快照备份,如果有什么闪失,还能回滚磁盘进行挽救,这个步骤是最重要的,一定不要心存侥幸。快照很简单,在阿里云后台找到对应的云盘,创建快照就好了,等创建完成了再进行操作磁盘扩容。

    二、磁盘分区扩容

    扩容之前我们先查看一下分区的情况:磁盘总共大小98G,已经使用98G,空闲0  此刻磁盘已经爆满了,数据特别多。

    1、把原来挂载的目录卸载,我的分区是/etc/vdb/挂载在/www/目录。卸载命令如下:

    umount /etc/vdb/ /www/

    a、如果不知道哪个分区挂在哪个目录,可以使用df -h命令查看。

    b、通常情况下,当你直接卸载,会提示 Device is busy ,这是因为磁盘里有服务在运行,所以需要先把进程都杀掉再操作,执行 fuser -m -k -v /dev/vdb1 将所有的进程都kill掉。然后再进行如上操作卸载即可。

    2、使用fdisk工具删除旧分区,一般情况下不会丢失数据,按照步骤操作即可(提示:建议一定要进行第一步操作,创建快照备份数据)。

    a、运行fdisk -u /dev/vdb:分区数据盘。记录下分区起始位置:2048

    b、输入p:打印分区表。

    c、输入d:删除分区。

    d、输入p:确认分区已删除。

    e、输入w:保存修改并退出。

    [root@iZbp18vj2il5razqprg8dnZ /]# fdisk -u /dev/vdb
    
    Welcome to fdisk (util-linux 2.32.1).
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
    
    Command (m for help): p
    Disk /dev/vdb: 140 GiB, 150323855360 bytes, 293601280 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
    Disklabel type: dos
    Disk identifier: 0xdb798a36
    
    Device     Boot Start       End   Sectors  Size Id Type
    /dev/vdb1        2048 209715199 209713152  100G 83 Linux
    
    Command (m for help): d
    Selected partition 1
    Partition 1 has been deleted.
    
    Command (m for help): p
    Disk /dev/vdb: 140 GiB, 150323855360 bytes, 293601280 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
    Disklabel type: dos
    Disk identifier: 0xdb798a36
    
    Command (m for help): w
    The partition table has been altered.
    Calling ioctl() to re-read partition table.
    Syncing disks.
    
    

    3、创建新分区

    a、使用fdisk命令新建分区。

    b、运行fdisk -u /dev/vdb分区数据盘。

    c、输入p:打印分区表。

    d、输入n:新建分区。

    e、输入p:选择分区类型为主分区。

    f、输入<分区号>:选择分区号:1。

    g、输入分区起始位置(新分区的起始位置必须和旧分区的起始位置相同,结束位置必须大于旧分区的结束位置,否则会导致扩容失败。):2048,然后回车。

    h、输入w:保存修改并退出。

    Welcome to fdisk (util-linux 2.32.1).
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
    
    Command (m for help): p
    Disk /dev/vdb: 140 GiB, 150323855360 bytes, 293601280 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
    Disklabel type: dos
    Disk identifier: 0xdb798a36
    
    Command (m for help): n
    Partition type
       p   primary (0 primary, 0 extended, 4 free)
       e   extended (container for logical partitions)
    Select (default p): p
    Partition number (1-4, default 1): 1
    First sector (2048-293601279, default 2048): 2048
    Last sector, +sectors or +size{K,M,G,T,P} (2048-293601279, default 293601279): 
    
    Created a new partition 1 of type 'Linux' and of size 140 GiB.
    
    Command (m for help): w
    The partition table has been altered.
    Calling ioctl() to re-read partition table.
    Syncing disks.
    
    

    4、更新内核分区表

    partprobe /dev/vdb  或者   partx -u /dev/vdb1
    

    5、运行以下命令确保分区表已经增加

    lsblk /dev/vdb
    

    6、运行以下命令再次检查文件系统,确认扩容分区后的文件系统状态

    e2fsck -f /dev/vdb1

    三、扩容文件系统

    本磁盘的文件系统问ext4,所以依次运行以下命令调整ext4文件系统大小并重新挂载分区。

    1、调整ext4文件系统大小。

    resize2fs /dev/vdb1
    

    执行后提示:Please run ‘e2fsck -f /dev/vdb’ first. 参数-f意思就是需要强制执行一下,否则执行不了。

    resize2fs -f /dev/vdb
    

    执行之后就成功扩容文件系统。

    [root@iZbp18vj2il5razqprg8dnZ /]# resize2fs -f /dev/vdb
    resize2fs 1.45.4 (23-Sep-2019)
    Resizing the filesystem on /dev/vdb to 36700160 (4k) blocks.
    The filesystem on /dev/vdb is now 36700160 (4k) blocks long.
    
    

    2、重新挂载分区到www目录

    mount /dev/vdb/ /www/
    
    [root@iZbp18vj2il5razqprg8dnZ /]# df -h
    Filesystem      Size  Used Avail Use% Mounted on
    devtmpfs        3.7G     0  3.7G   0% /dev
    tmpfs           3.7G     0  3.7G   0% /dev/shm
    tmpfs           3.7G  516K  3.7G   1% /run
    tmpfs           3.7G     0  3.7G   0% /sys/fs/cgroup
    /dev/vda1        40G  3.3G   37G   9% /
    tmpfs           755M     0  755M   0% /run/user/0
    /dev/vdb        138G   98G   33G  75% /www
    
    

    挂载完成后,www目录大小达到138G,已使用:98G,空闲:33G,

    3、查看一下是否已经设置服务器启动自动挂载

    对于centos的新磁盘挂载分区格式化不清楚的朋友,可以查看之前的文章:centos6分区与格式化数据盘、挂载磁盘的方法

    cat /etc/fstab 
    

    有以上红框内的信息,代表已经设置好自动挂载。如果没有的话,执行以下命令进行设置。

    echo '/dev/vdb /www ext4 defaults 0 0' >> /etc/fstab
    

    由于之前分区内有安装宝塔服务,需要在扩容挂载完成后,重新启动以下宝塔服务。其他服务也类似操作。

    [root@iZbp18vj2il5razqprg8dnZ /]# service bt start
    Starting Bt-Panel....	done
    Starting Bt-Tasks... 	done
    [root@iZbp18vj2il5razqprg8dnZ /]# cat /etc/fstab 
    

    扩容完成后,检查一下磁盘数据完好,服务启动正常,大功告成。

    操作到此,阿里云磁盘扩容全部完成,无损扩容磁盘,数据完好。做个简单的记录,希望能给经验不多的朋友提供一些参考。


    知事网 » 阿里云linux服务器磁盘在线扩容以及扩容分区和文件系统,无损操作数据不丢失

    发表评论

    还没有评论,快来抢沙发吧!

    [!--temp.right--]
    请选择支付方式
    ×
    余额支付
    ×
    微信扫码支付 0 元