如何在 CentOS 7 中添加新磁盘而不用重启系统

简介:

如何在 CentOS 7 中添加新磁盘而不用重启系统

对大多数系统管理员来说扩充 Linux 服务器的磁盘空间是日常的工作之一。因此这篇文章会通过使用 Linux 命令,在 CentOS 7 系统上演示一些简单的操作步骤来扩充您的磁盘空间而不需要重启您的生产服务器。关于扩充和增加新的磁盘到 Linux 系统,我们会提及多种方法和多种可行性,可按您所需选择最适用的一种。

1. 在虚拟机客户端扩充磁盘空间:

在为 Linux 系统增加磁盘卷之前,您首先需要添加一块新的物理磁盘,或在 VMware vShere、VMware 工作站以及你使用的其它虚拟环境软件中进行设置来增加一块虚拟磁盘的容量。

Increase disk

2. 检查磁盘空间:

运行如下命令来检查当前磁盘空间大小。

 
 
  1. # df -h
  2. # fdisk -l

Fdisk check

可以看到,虽然我们已经在后端给其增加到 50 GB 的空间,但此时的总磁盘大小仍然为 10 GB。

3. 扩展空间而无需重启虚拟机

现在运行如下命令,通过重新扫描 SCSI (注:Small Computer System Interface 小型计算机系统接口)总线并添加 SCSI 设备,系统就可以扩展操作系统的物理卷磁盘空间,而且不需要重启虚拟机。

 
 
  1. # ls /sys/class/scsi_host/
  2. # echo "- - -" > /sys/class/scsi_host/host0/scan
  3. # echo "- - -" > /sys/class/scsi_host/host1/scan
  4. # echo "- - -" > /sys/class/scsi_host/host2/scan

使用下面的命令来检查 SCSI 设备的名称,然后重新扫描 SCSI 总线。

 
 
  1. # ls /sys/class/scsi_device/
  2. # echo 1 > /sys/class/scsi_device/0\:0\:0\:0/device/rescan
  3. # echo 1 > /sys/class/scsi_device/2\:0\:0\:0/device/rescan

如下图所示,会重新扫描 SCSI 总线,随后我们在虚拟机客户端设置的磁盘大小会正常显示。

Rescan disk device

4. 创建新磁盘分区:

一旦在系统中可以看到扩展的磁盘空间,就可以运行如下命令来格式化您的磁盘以创建一个新的分区。请按如下操作步骤来扩充您的物理磁盘卷。

 
 
  1. # fdisk /dev/sda
  2. Welcome to fdisk (util-linux 2.23.2) press the 'm' key for help
  3. Command (m for help): m
  4. Command action
  5. a toggle a bootable flag
  6. b edit bsd disklabel
  7. c toggle the dos compatibility flag
  8. d delete a partition
  9. g create a new empty GPT partition table
  10. G create an IRIX (SGI) partition table
  11. l list known partition types
  12. m print this menu
  13. n add a new partition
  14. o create a new empty DOS partition table
  15. p print the partition table
  16. q quit without saving changes
  17. s create a new empty Sun disklabel
  18. t change a partition's system id
  19. u change display/entry units
  20. v verify the partition table
  21. w write table to disk and exit
  22. x extra functionality (experts only)
  23. Command (m for help):

键入 'p' 来查看当前的分区表信息,然后键入 'n' 键来创建一个新的主分区,选择所有可用的扇区。 使用 't' 命令改变磁盘类型为 'Linux LVM',然后选择编码 '8e' 或者默认不选,它默认的类型编码为 '83'。

现在输入 'w' 来保存分区表信息并且退出命令环境,如下示:

 
 
  1. Command (m for help): w
  2. The partition table has been altered!
  3. Calling ioctl() to re-read partition table.
  4. WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
  5. The kernel still uses the old table. The new table will be used at
  6. the next reboot or after you run partprobe(8) or kpartx(8)

New disk Volume

5. 创建物理卷:

根据上述提示,运行 'partprob' 或 'kpartx' 命令以使分区表生效,然后使用如下的命令来创建新的物理卷。

 
 
  1. # partprobe
  2. # pvresize /dev/sda3

要检查新创建的卷,运行如下的命令可以看出新的物理卷是否已经被创建,是否可用。接下来,我们就可以使用这个新的物理卷来扩展 'centos' 卷组了,如下示:

 
 
  1. # pvdisplay
  2. # vgextend centos /dev/sda3

Extend volume Group

6. 扩展逻辑卷:

现在我们使用如下的命令扩展逻辑卷,以增加我们系统正使用的磁盘空间。

 
 
  1. # lvextend -L +40G /dev/mapper/centos-root

一旦返回增加成功的消息,就可以运行如下命令来扩展您的逻辑卷大小。

 
 
  1. # xfs_growfs /dev/mapper/centos-root

'/' 分区的大小已经成功的增加了,可以使用 'df' 命令来检查您磁盘驱动器的大小。如图示。

Increase disk space

7. 通过增加新的磁盘来扩充根分区而不用重启系统:

这是第二种方法,它使用的命令非常简单, 用来增加 CentOS 7 系统上逻辑卷空间大小。

所以第一步是打开您的虚拟机客户端的设置页面,点击 ‘增加’ 按纽,然后继续下一步操作。

Add new disk

选择新磁盘所需要的配置信息,如下图所示的,选择新磁盘的大小和它的类型。

New disk setup

然后进入服务端重复如下的命令来扫描您的磁盘设备,以使新磁盘在系统中可见。

 
 
  1. # echo "- - -" > /sys/class/scsi_host/host0/scan
  2. # echo "- - -" > /sys/class/scsi_host/host1/scan
  3. # echo "- - -" > /sys/class/scsi_host/host2/scan

列出您的 SCSI 设备的名称:

 
 
  1. # ls /sys/class/scsi_device/
  2. # echo 1 > /sys/class/scsi_device/1\:0\:0\:0/device/rescan
  3. # echo 1 > /sys/class/scsi_device/2\:0\:0\:0/device/rescan
  4. # echo 1 > /sys/class/scsi_device/3\:0\:0\:0/device/rescan
  5. # fdisk -l

Scanning new disk

一旦新增的磁盘可见,就可以运行下面的命令来创建新的物理卷,然后增加到卷组,如下示。

 
 
  1. # pvcreate /dev/sdb
  2. # vgextend centos /dev/sdb
  3. # vgdisplay

Extending Volume Group

现在根据此磁盘的空间大小来扩展逻辑卷,然后添加到根分区。

 
 
  1. # lvextend -L +20G /dev/mapper/centos-root
  2. # xfs_growfs /dev/mapper/centos-root
  3. # df -h

Increase / Partition

结论:

在 Linux CentOS 7 系统上管理磁盘分区的操作过程是非常简单的,可以使用这篇文章所述的操作步骤来扩充您的任意逻辑卷的磁盘空间。您不需要重启生产线上的服务器,只是简单的重扫描下 SCSI 设备,和扩展您想要的 LVM(逻辑卷管理)。我们希望这文章对您有用。请随意的发表有用的评论和建议。


本文来自云栖社区合作伙伴“Linux中国”

原文发布时间为:2013-04-02.

相关文章
|
2月前
|
Java Linux Shell
linux自动部署jar包,注册系统服务(基于Centos7)
linux自动部署jar包,注册系统服务(基于Centos7)
90 0
|
3月前
|
安全 Linux 网络安全
百度搜索:蓝易云【centos7系统添加用户、密码,以及修改端口教程】
请牢记,对系统进行任何更改都需要谨慎行事。在执行这些操作之前,最好备份重要的数据和配置文件,并确保您具有足够的权限和知识来进行这些更改。如果在操作过程中遇到任何问题,请务必小心并及时修复,以免影响系统的稳定性和安全性。
69 2
|
3月前
|
缓存 Linux 网络安全
系统-安装centos6
系统-安装centos6
146 0
|
4月前
|
Linux Shell 数据安全/隐私保护
CentOS-7.9忘记密码如何进入系统
前言 密码记不住一定要备份,重点! 以下步骤旨在提供一个大致的指南。请根据你的系统和问题进行调整,并确保在进行任何更改之前备份重要数据。如果对任何命令不确定,最好先进行额外的研究或咨询。 启动系统并进入 GRUB 引导界面 选择你要引导的Linux系统,并在启动时按下键盘上的 e 键来编辑引导选项。 修改启动参数 在启动参数中找到以 ro 开头的行,将其修改为 rw 并在其末尾添加 rd.break。这将告诉系统在启动时进入临时环境以修改密码。 启动系统
442 2
|
4月前
|
网络协议 Linux Shell
CentOS 7系统下DHCP及中继服务部署
设备 IP地址 主DNS服务器 192.168.100.254 从DNS服务器 192.168.100.1 客户端 192.168.200.2 一、DHCP服务器的部署
118 0
|
3月前
|
监控 安全 Linux
CentOS7下部署ARL资产侦察灯塔系统
CentOS7下部署ARL资产侦察灯塔系统
172 3
|
1月前
|
关系型数据库 MySQL 数据库
虚拟机Linux-Centos系统网络配置常用命令+Docker 的常用命令
虚拟机Linux-Centos系统网络配置常用命令+Docker 的常用命令
43 0
|
1月前
|
关系型数据库 MySQL Linux
【VMware安装+centos 7Linux系统+MySQL安装】——在Linux系统中安装MySQL步骤,以及遇见的各种问题(如:vm两个虚拟网卡消失、vm网络适配器有感叹号等等)
【VMware安装+centos 7Linux系统+MySQL安装】——在Linux系统中安装MySQL步骤,以及遇见的各种问题(如:vm两个虚拟网卡消失、vm网络适配器有感叹号等等)
185 0
|
2月前
|
Linux
centos7实现磁盘挂载,解挂,开机自动挂载,解决挂载文件覆盖问题
centos7实现磁盘挂载,解挂,开机自动挂载,解决挂载文件覆盖问题
114 0
|
2月前
|
关系型数据库 Linux Shell
Centos系统上安装PostgreSQL和常用PostgreSQL功能
Centos系统上安装PostgreSQL和常用PostgreSQL功能