扩容数据盘_Linux[通俗易懂]

扩容数据盘_Linux[通俗易懂]扩容数据盘_Linux

大家好,又见面了,我是你们的朋友全栈君。

1,前提条件
实例处于 运行中 (Running) 或 已停止(Stopped) 状态。

数据盘的状态为 待挂载 或 使用中。

数据盘已做分区。

建议在扩容数据盘之前手动创建快照,以备份数据。

假设数据盘挂载在一台Linux实例上,实例的操作系统为CentOS 7.3 64位,未扩容前的数据盘只有一个主分区(/dev/vdb1,ext4文件系统),文件系统的挂载点为 /kdata,文件系统扩容完成后,数据盘仍然只有一个主分区。

1,先卸载主分区 /dev/vdb1

umount /dev/vdb1

如果

[root@lcoalhost /]# umount /dev/sdc1
umount: /data1: target is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

显示占用的进程

[root@localhost /]# fuser -m /dev/sdc1
-bash: fuser: command not found

没有fuser 安装psmisc

yum install -y psmisc

在次查看

[root@localhost /]# fuser -m /dev/sdc1
/dev/sdc1:           12766c
[root@localhost /]# ps aux | grep 12766
root     10246  0.0  0.0 116460  3212 pts/0    Ss+  Oct19   0:00 -bash

使用kill命令关闭进程:(如果进程多,可能要多杀几次)

kill -9 12766

2,查看分区是否存在

df -h

3,使用fdisk命令删除原来的分区并创建新分区(输入后回车)–fdisk

1,fdisk -l
2,fdisk 【‘数据盘设备名’】
输入d		--删除原来的分区
输入n		--开始创建新的分区
输入p		--开始创建新的分区。		
输入1		--创建主分区。
输入第一个可用的扇区编号:为了保证数据的一致性,First sector需要与原来的分区保持一致。在本示例中,按回车键采用默认值。
输入最后一个扇区编号:因为这里仅创建一个分区,所以按回车键采用默认值。
输入wq并按回车键,开始分区。

--------------------------------demo---------------------------
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.
Command (m for help): d
Selected partition 1
Partition 1 is deleted
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
Partition number (1-4, default 1):
First sector (2048-62914559, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-62914559, default 62914559):
Using default value 62914559
Partition 1 of type Linux and of size 30 GiB is set
Command (m for help): wq
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

注意:demo里面可能有WARNING

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)

解决方式:实例重启或者reboot或者partprobe重新读取分区

[root@localhost ~]# partprobe
-d:不更新内核;
-s:显示摘要和分区;
-h:显示帮助信息;
-v:显示版本信息。

运行partprobe。错误提示

Error: Error informing the kernel about modifications to partition /dev/vdb1 
-- Device or resource busy.  
This means Linux won't know about any changes you made to /dev/vdb1 until you reboot
 -- so you shouldn't mount it or use it in any way before rebooting.
Error: Failed to add partition 1 (Device or resource busy)
错误:通知内核修改分区/DEV/VBD1的错误-设备或资源忙。
这意味着在重新启动之前,Linux不会知道对/dev/vdb1所做的任何更改——因此在重新启动之前,不应该以任何方式挂载或使用它。
错误:添加分区1失败(设备或资源忙)

最后只能重启实例。

4,部分操作系统里,修改分区后可能会重新自动挂载文件系统。

df -h 查看是否挂载    如果挂载,执行umount /dev/vdb1

5,检查文件系统,并变更文件系统大小。

e2fsck -f /dev/vdb1 # 检查文件系统
resize2fs /dev/vdb1 # 变更文件系统大小

说明

使用 e2fsck 时,由于系统需要检查并订正文件系统元数据,所以速度较慢、耗时较长,请耐心等待。
正确使用 e2fsck 和 resize2fs 指令,不会造成原有数据丢失。

事例

root@iXXXXXX ~]# e2fsck -f /dev/vdb1
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vdb1: 11/1835008 files (0.0% non-contiguous), 159218/7339776 blocks
[root@iXXXXXX ~]# resize2fs /dev/vdb1
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vdb1 to 7864064 (4k) blocks.
The filesystem on /dev/vdb1 is now 7864064 blocks long.

6,将扩容完成的文件系统挂载到原来的挂载点(/kdata)

mount /dev/vdb1 /kdata

7, 执行df -h查看。–success

通过–parted 操作
说明 如果发现First sector显示的位置和之前记录的不一致,说明之前可能使用 parted 来分区,那么就停止fdisk 操作,使用 parted 重新操作。
parted /dev/vdb
rm+ 序列号 删除老的分区表
unit s 定义起始位置
mkpart primary ext4 1 100G 命令来创建即可
p 查看

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/105903.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java程序运行机制的特点_Java语言的特点

    java程序运行机制的特点_Java语言的特点特点一:面向对象1、两个基本概念:类、对象2、三大特性:封装、继承、多态特点二:健壮性吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等),提供了一个相对安全的内存管理和访问机制特点三:跨平台性跨平台性:通过Java语言编写的应用程序在不同的系统平台上都可以运行。“Writeonce,RunAnywhere”原理:只要在需要运行java应用程序的操作系…

    2022年7月8日
    14
  • Java实现pdf和Excel的生成及数据动态插入、导出

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:慢时光 cnblogs.com/Tom-shushu/p/14279357.html 一、序言 Excel、P…

    2021年6月28日
    101
  • mysql datetime、date、time、timestamp区别

    mysql datetime、date、time、timestamp区别mysql datetime、date、time、timestamp区别

    2022年4月24日
    43
  • 15种手机游戏引擎和开发工具介绍

    15种手机游戏引擎和开发工具介绍工欲善其事,必先利其器。对移动游戏开发者来说,高效实用的开发工具必不可少。近日,英国著名产业杂志《Develop》刊出了一篇文章,作者艾伦·李在文中推荐了15种移动游戏开发工具,从游戏引擎,到音效制作、推广等工具都有涉及。以下为原文主要内容编译。引擎和移动开发工具包Marmalade简介:Marmalade被很多人认为是跨平台制作C++游戏的最佳平台。通过MarmaladeSDK,开发者可以在单一的Marmalade项目文件夹中打开Xcode或VisualStudio,将

    2022年5月22日
    134
  • matlab griddata外插,matlab griddata方法使用介绍

    matlab griddata外插,matlab griddata方法使用介绍griddata的作bai用是数据网格化。其一般用du法格式为ZI=griddata(x,y,z,XI,YI)%x、y、z——数据,XI,YI——X-Y平面上的zhi网格数据应用实例:dao>>x=rand(100,1)*4-2;y=rand(100,1)*4-2;>>z=x.*exp(-x.^2-y.^2);>>ti=-2:.2…

    2022年5月9日
    565
  • Arduino教程 RFID-RC522读IC卡门禁原理及破解防御[通俗易懂]

    【文章特色:1、提出IC卡破解原理和简单有效的防御方法2、网上其他文章对于硬件如何接线说得模糊不清】1、序言2、加载RC522库文件3、模块引脚接线4、程序代码5、运行结果先说下简单门禁系统的原理:(1)IC卡激活:门禁卡管理员将卡片放到读卡器、这时软件读取到IC卡的UID序列号信息(相当于身份证号码),将这个UID录入数据库激活IC卡。(2)刷卡

    2022年4月17日
    285

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号