生产环境Linux服务器磁盘分区、无损扩容根分区以及挂载磁盘到目录实战

简介: 生产环境Linux服务器磁盘分区、无损扩容根分区以及挂载磁盘到目录实战

-- 以下用虚拟机演示,与真实环境操作根据情况而定,大体一致!--


1.选择一台虚拟机,为其添加一块新的磁盘100G

2.png

2.连接虚拟机,查看新添加的磁盘

3.png

添加新磁盘后直接查看,是查看不到的,因为系统还没有识别到新添加的磁盘。需要让Linux系统重新识别新磁盘。


两种方法:


1.重启服务器(生产中基本不会随意重启服务器)


2.不重启服务器(使用命令来扫描识别新磁盘)


—》不重启服务器识别新磁盘方法如下:


2.1.查看主机总线号

[root@localhost ~]# ls /sys/class/scsi_host/
host0  host1  host2

2.2.重新扫描SCSI总线来添加设备(之所以扫描SCSI总线,是因为我们添加的是 SCSI 类型的磁盘。)

[root@localhost ~]# echo "- - -" > /sys/class/scsi_host/host0/scan
[root@localhost ~]# echo "- - -" > /sys/class/scsi_host/host1/scan
[root@localhost ~]# echo "- - -" > /sys/class/scsi_host/host2/scan

2.3查看识别到的新添加的磁盘

[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part
  ├─centos-root 253:0    0   37G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk
└─sdb1            8:17   0   20G  0 part
  └─centos-root 253:0    0   37G  0 lvm  /
sdc               8:32   0  100G  0 disk   --》成功识别到新磁盘
sr0              11:0    1  906M  0 rom

4.png

3.将新添加的磁盘sdc进行磁盘分区,分为2个分区,并设置磁盘分区类型为8e,即LVM类型

[root@localhost ~]# fdisk /dev/sdc
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xc605fa7d 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n                     --添加新分区
Partition type:
   p   primary (0 primary, 0 extended, 4 free)        --p为主分区,最多只能有4个
   e   extended                             --e为逻辑分区--
Select (default p): p                       --我们需要分主分区,所以输入p
分区号 (1-4,默认 1):1               --这个分区的分区号,sdc1、sdc2这种,默认从1开始计数,默认
起始 扇区 (2048-209715199,默认为 2048):    --起始扇区,默认将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-209715199,默认为 209715199):+50G         --分多个区时,需要规划每个区分多大的空间,这里为50G,记住前面有+号
分区 1 已设置为 Linux 类型,大小设为 50 GiB
命令(输入 m 获取帮助):t                     --设置sdc1分区的类型
已选择分区 1                                 --选择要设置哪个分区
Hex 代码(输入 L 列出所有代码):8e            --8e类型为LVM类型,设置为8e,方便后期(默认为83类型,8e类型为LVM类型)
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):n              --添加新分区(将一个磁盘分成多个区时,就可以这样分完一个区,再次分下一个)
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
分区号 (2-4,默认 2):2              --sdc1分区已经分了,所以这里从第2个开始,即为sdc2分区
起始 扇区 (104859648-209715199,默认为 104859648):
将使用默认值 104859648              --因为已经有sdc1分区了,所以起始扇区是从sdc1分区的末尾开始算,sdc1是从2048~104859647,则sdc2分区为104859648~207620095
Last 扇区, +扇区 or +size{K,M,G} (104859648-209715199,默认为 209715199):+49G        --磁盘总大小为100G,sdc1已经分走50G,这里不能再分完整的50G,会提示空间不足,一般需预留一点才行,所以这里分49G
分区 2 已设置为 Linux 类型,大小设为 49 GiB
命令(输入 m 获取帮助):t
分区号 (1,2,默认 2):2
Hex 代码(输入 L 列出所有代码):8e            --设置分区类型为8e,即LVM类型
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):p            --列出分区信息
磁盘 /dev/sdc:107.4 GB, 107374182400 字节,209715200 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xc605fa7d
   设备 Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048   104859647    52428800   8e  Linux LVM
/dev/sdc2       104859648   207620095    51380224   8e  Linux LVM       —》可以看到分出来的2个磁盘类型都设置为了8e,即LVM类型
命令(输入 m 获取帮助):w          --将分区表写入磁盘保存,如果不想保存,则输入q,可以不保存上面的分区,可以重新分区
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part
  ├─centos-root 253:0    0   37G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk
└─sdb1            8:17   0   20G  0 part
  └─centos-root 253:0    0   37G  0 lvm  /
sdc               8:32   0  100G  0 disk
├─sdc1            8:33   0   50G  0 part  #可以看到分的2个区
└─sdc2            8:34   0   49G  0 part
sr0              11:0    1  906M  0 rom

5.png

4.将sdc1分区用于无损扩容根目录空间sdc2分区用于挂载到/home子目录单独使用


--------sdc1分区无损扩容根目录--------


4.1 sdc1分区创建物理卷


pvcreate /dev/sdc1


pvdisplay          #查看创建的物理卷

6.png

4.2 将物理卷pv扩容到卷组vg


vgdisplay     #先查看一下卷组vg的名字,用于扩容

7.png

vgextend centos /dev/sdc1     #扩容卷组


vgdisplay     #查看扩容后的卷组

8.png可以看到卷组从开始的38.99G已经扩容到了88.99G。


4.3 扩容LVM根分区


可以使用df -hl查看根分区/的路径来扩容根分区


也可以lvdisplay来查看lv的path路径来扩容根分区(推荐)

9.pnglvextend -L +49.99G /dev/mapper/centos-root


在使用上面的命令扩容时,因为我们的sdc1分区空间有50G,那么我们在扩容lvm的时候,只能输入+49.99G,需要预留一点出来,直接输入+50G会提示空间不足,直接填写49.99G就可以!


lvextend -L +49.99G /dev/centos/root /dev/sdc1

10.png

4.4 同步文件系统即重新读取根分区磁盘信息


xfs\_growfs /dev/mapper/centos\-root   #同步文件系统到根/目录磁盘路径下


xfs\_growfs /dev/centos/root(这里的路径用df -hl的路径或者lvdisplay的路径都可以)       --centos7一般用这个


或者


resize2fs /dev/centos/root   --centos6一般用这个

11.png12.png13.png

可以看到通过上面的操作已经成功将根目录成功无损扩容了!


--------sdc2分区用于挂载到/home子目录单独使用---------

14.png

注意:


将新磁盘添加到Linux服务器上后,扩容根分区容量时就按上面的sdc1操作一步一步来;如果是要将磁盘部分分区sdc2作为挂载目录单独使用,则按下面的方法来,这两种使用方式的前几步都是一样的,即对新磁盘 /dev/vdc 先进行分区(已经分好了sdc1、sdc2),然后将要挂载单独使用的分区磁盘sdc2进行格式化,然后就可以挂载使用了!


Sdc2分区相关操作如下:


1.将新添加的磁盘sdc进行磁盘分区,分为2个分区,并设置磁盘分区类型为8e,即LVM类型(sdc1已经扩容根演示了,这里主要是看sdc2的部分)

[root@localhost ~]# fdisk /dev/sdc
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xc605fa7d 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n   #添加新分区
Partition type:
   p   primary (0 primary, 0 extended, 4 free)  #p为主分区,最多只能有4个
   e   extended     #e为逻辑分区
Select (default p): p  #我们需要分主分区,所以输入p
分区号 (1-4,默认 1):1   #这个分区的分区号,sdc1、sdc2这种,默认从1开始计数,默认
起始 扇区 (2048-209715199,默认为 2048):  #起始扇区,默认
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-209715199,默认为 209715199):+50G   #分多个区时,需要规划每个区分多大的空间,这里为50G,记住前面有+号
分区 1 已设置为 Linux 类型,大小设为 50 GiB
命令(输入 m 获取帮助):t    #设置sdc1分区的类型
已选择分区 1     #选择要设置哪个分区
Hex 代码(输入 L 列出所有代码):8e    #8e类型为LVM类型,设置为8e,方便后期
已将分区“Linux”的类型更改为“Linux LVM”
下面是sdc2分区的分区过程:
命令(输入 m 获取帮助):n   #添加新分区(将一个磁盘分成多个区时,就可以这样分完一个区,再次分下一个)
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
分区号 (2-4,默认 2):2     #sdc1分区已经分了,所以这里从第2个开始,即为sdc2分区
起始 扇区 (104859648-209715199,默认为 104859648):
将使用默认值 104859648    #因为已经有sdc1分区了,所以起始扇区是从sdc1分区的末尾开始算,sdc1是从2048~104859647,则sdc2分区为104859648~207620095
Last 扇区, +扇区 or +size{K,M,G} (104859648-209715199,默认为 209715199):+49G   #磁盘总大小为100G,sdc1已经分走50G,这里不能再分完整的50G,会提示空间不足,一般需预留一点才行,所以这里分49G
分区 2 已设置为 Linux 类型,大小设为 49 GiB
命令(输入 m 获取帮助):t
分区号 (1,2,默认 2):2
Hex 代码(输入 L 列出所有代码):8e  #设置分区类型为8e,即LVM类型
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):p   #列出分区信息
磁盘 /dev/sdc:107.4 GB, 107374182400 字节,209715200 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xc605fa7d
   设备 Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048   104859647    52428800   8e  Linux LVM
/dev/sdc2       104859648   207620095    51380224   8e  Linux LVM    —》可以看到分出来的2个磁盘类型都设置为了8e,即LVM类型
命令(输入 m 获取帮助):w    #将分区表写入磁盘保存,如果不想保存,则输入q,可以不保存上面的分区,可以重新分区
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part
  ├─centos-root 253:0    0   37G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk
└─sdb1            8:17   0   20G  0 part
  └─centos-root 253:0    0   37G  0 lvm  /
sdc               8:32   0  100G  0 disk
├─sdc1            8:33   0   50G  0 part  
└─sdc2            8:34   0   49G  0 part  #可以看到本次要用的sdc2分区
sr0              11:0    1  906M  0 rom

15.png

2.格式化分区文件系统(最常见的为xfs和ext4类型)

xfs和ext4的区别:
1.RHEL/Centos7默认文件系统是XFS,Centos6为Ext4,Centos5为Ext3。
2.XFS可扩展性和Scalability比较强,Ext4受限于磁盘结构和兼容问题。
3.EXT4可支持单个文件的大小:16GB到16TB。性能更高!
4.XFS可支持单个文件的大小:16TB到16EB。
5.XFS是64位文件系统,理论上最大支持8EB减1字节的单个文件系统。
6.Ext4是32位文件系统,理论上最大支持1EB减1字节的单个文件系统。

2.1 将分区sdc2文件系统格式化为xfs文件系统类型

16.png

[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part
  ├─centos-root 253:0    0   87G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk
└─sdb1            8:17   0   20G  0 part
  └─centos-root 253:0    0   87G  0 lvm  /
sdc               8:32   0  100G  0 disk
├─sdc1            8:33   0   50G  0 part
│ └─centos-root 253:0    0   87G  0 lvm  /
└─sdc2            8:34   0   49G  0 part
sr0              11:0    1  906M  0 rom
[root@localhost ~]# mkfs.xfs /dev/sdc2
meta-data=/dev/sdc2              isize=512    agcount=4, agsize=3211264 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=12845056, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=6272, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

2.2 查看格式化后的sdc2分区的文件系统

[root@localhost ~]# blkid
/dev/sda1: UUID="53742718-1099-483a-8eb5-bd343b82d709" TYPE="xfs"
/dev/sda2: UUID="h8HIlP-RzLz-Qabd-zU9m-TekA-CDDx-wwbVrR" TYPE="LVM2_member"
/dev/sdb1: UUID="o97VVU-AdR2-Fm61-oRUA-CWZx-FF86-GKNaJN" TYPE="LVM2_member"
/dev/sr0: UUID="2018-05-03-21-07-04-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/mapper/centos-root: UUID="4d85ff81-ed74-449a-8d72-0c91a9b5b5e2" TYPE="xfs"
/dev/mapper/centos-swap: UUID="1b727d3c-ccf7-4828-911f-78bf59691809" TYPE="swap"
/dev/sdc1: UUID="n4PDMJ-8Pmy-4G5E-q9qv-zbGs-ESQc-6Vd0Vd" TYPE="LVM2_member"
/dev/sdc2: UUID="bd0941e7-102c-4dbd-9eec-7a75cdbe98d2" TYPE=“xfs"

17.png

3.创建挂载目录

18.png

4.书写自动挂载配置文件/etc/fstab,添加新的挂载配置

格式:
设备名称  挂载点  分区的类型  挂载选项  dump选项  fsck选项
-设备名称:
  可以是实际设备名称/dev/sda1(这类名称不稳定,在配置文件中不要使用);也可以是卷标LABEL;最好是用UUID;(不会变化)可以通过blkid命令获取设备uuid信息
-挂载点:
/、/usr、swap等都是系统安装是分区的默认挂载点
-文件系统类型
ext2、ext3、ext4、xfs、brtfs、jfs、reiserfs、reiser4、swap
-挂载选项:
auto/noauto:默认auto支持;是否支持系统自动挂载,是否支持-a选项
user/nouser:默认nouser不支持;是否支持普通用户挂载此设备
ro:按制度权限挂载
rw:按可读可写权限挂载
pri:swap设备需要指定优先级
defaults:默认支持rw,nouid,dev,auto,nosuer,async(若不写入则默认支持)   —》基本都是默认用这个
-dump选项:
设置是否让备份程序备份文件系统,0为不备份,1为每天次,如果上次是用dump备份,将显示备份至今的天数
-fsck选项:
告诉fsck程序以什么顺序检查文件系统,0为不检查,根分区为1表示永远检查,其他从2开始,数字相同就同时检查,但是不能同时为1;注意,最好将这个选项设置为0,有故障的时候机器还可以重启,如果不设置成为0,出故障还需要去机房排查故障

原/etc/fstab配置文件:

19.png

查看sdc2分区的详细信息(UUID)

[root@localhost ~]# blkid
/dev/sda1: UUID="53742718-1099-483a-8eb5-bd343b82d709" TYPE="xfs"
/dev/sda2: UUID="h8HIlP-RzLz-Qabd-zU9m-TekA-CDDx-wwbVrR" TYPE="LVM2_member"
/dev/sdb1: UUID="o97VVU-AdR2-Fm61-oRUA-CWZx-FF86-GKNaJN" TYPE="LVM2_member"
/dev/sr0: UUID="2018-05-03-21-07-04-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/mapper/centos-root: UUID="4d85ff81-ed74-449a-8d72-0c91a9b5b5e2" TYPE="xfs"
/dev/mapper/centos-swap: UUID="1b727d3c-ccf7-4828-911f-78bf59691809" TYPE="swap"
/dev/sdc1: UUID="n4PDMJ-8Pmy-4G5E-q9qv-zbGs-ESQc-6Vd0Vd" TYPE="LVM2_member"
/dev/sdc2: UUID="bd0941e7-102c-4dbd-9eec-7a75cdbe98d2" TYPE="xfs"

添加新配置到/etc/fstab文件中

[root@localhost ~]# vi /etc/fstab
#
# /etc/fstab
# Created by anaconda on Fri Dec  3 19:51:41 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=53742718-1099-483a-8eb5-bd343b82d709 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
UUID=bd0941e7-102c-4dbd-9eec-7a75cdbe98d2 /home/file xfs defaults 0 0

5.使用mount -a重载开机自动挂载配置文件并查看挂载情况

20.png可以看到sdc2分区磁盘已经成功挂载到了/home/file目录下,并且也配置好了开机自动挂载文件!

目录
打赏
0
0
0
0
12
分享
相关文章
服务器数据恢复—服务器重装系统导致分区改变的数据恢复案例
服务器上有一组由raid卡组建的raid5磁盘阵列。上层安装linux才做系统,采用XFS文件系统,划分了3个分区。 管理员将服务器的操作系统重装后,发现服务器上的分区发生了改变:一个分区消失,其他分区不可访问。
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
Jupyter MCP服务器基于模型上下文协议(MCP),实现大型语言模型与Jupyter环境的无缝集成。它通过标准化接口,让AI模型安全访问和操作Jupyter核心组件,如内核、文件系统和终端。本文深入解析其技术架构、功能特性及部署方法。MCP服务器解决了传统AI模型缺乏实时上下文感知的问题,支持代码执行、变量状态获取、文件管理等功能,提升编程效率。同时,严格的权限控制确保了安全性。作为智能化交互工具,Jupyter MCP为动态计算环境与AI模型之间搭建了高效桥梁。
200 2
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
从Linux到Windows:阿里云服务器系统镜像适配场景与选择参考
阿里云为用户提供了丰富多样的服务器操作系统选择,以满足不同场景下的应用需求。目前,云服务器的操作系统镜像主要分为公共镜像、自定义镜像、共享镜像、镜像市场和社区镜像五大类。以下是对这些镜像类型的详细介绍及选择云服务器系统时需要考虑的因素,以供参考。
|
1月前
|
Linux下版本控制器(SVN) -服务器端环境搭建步骤
Linux下版本控制器(SVN) -服务器端环境搭建步骤
81 0
Linux下版本控制器(SVN) -服务器端环境搭建步骤
在Linux云服务器上限制特定IP进行SSH远程连接的设置
温馨提示,修改iptables规则时要格外小心,否则可能导致无法远程访问你的服务器。最好在掌握足够技术知识和理解清楚操作含义之后再进行。另外,在已经配置了防火墙的情况下,例如ufw(Ubuntu Firewall)或firewalld,需要按照相应的防火墙的规则来设置。
124 24
服务器数据恢复—Linux系统服务器数据恢复案例
服务器数据恢复环境: linux操作系统服务器中有一组由4块SAS接口硬盘组建的raid5阵列。 服务器故障: 服务器工作过程中突然崩溃。管理员将服务器操作系统进行了重装。 用户方需要恢复服务器中的数据库、办公文档、代码文件等。
|
3月前
|
阿里云linux服务器使用脚本通过安全组屏蔽异常海外访问ip
公网网站可能会遭受黑客攻击导致访问异常,使用此脚本可以屏蔽掉异常IP 恢复访问。也可自行设置定时任务定期检测屏蔽。
277 28
MCP 实战:用 Go 语言开发一个查询 IP 信息的 MCP 服务器
随着 MCP 的快速普及和广泛应用,MCP 服务器也层出不穷。大多数开发者使用的 MCP 服务器开发库是官方提供的 typescript-sdk,而作为 Go 开发者,我们也可以借助优秀的第三方库去开发 MCP 服务器,例如 ThinkInAIXYZ/go-mcp。 本文将详细介绍如何在 Go 语言中使用 go-mcp 库来开发一个查询 IP 信息的 MCP 服务器。
195 0
linux命令—tree
tree是一款强大的Linux命令行工具,用于以树状结构递归展示目录和文件,直观呈现层级关系。支持多种功能,如过滤、排序、权限显示及格式化输出等。安装方法因系统而异常用场景包括:基础用法(显示当前或指定目录结构)、核心参数应用(如层级控制-L、隐藏文件显示-a、完整路径输出-f)以及进阶操作(如磁盘空间分析--du、结合grep过滤内容、生成JSON格式列表-J等)。此外,还可生成网站目录结构图并导出为HTML文件。注意事项:使用Tab键补全路径避免错误;超大目录建议限制遍历层数;脚本中推荐禁用统计信息以优化性能。更多详情可查阅手册mantree。
linux命令—tree
linux命令—cd
`cd` 命令是 Linux/Unix 系统中用于切换工作目录的基础命令。支持相对路径与绝对路径,常用选项如 `-L` 和 `-P` 分别处理符号链接的逻辑与物理路径。实际操作中,可通过 `cd ..` 返回上级目录、`cd ~` 回到家目录,或利用 `cd -` 在最近两个目录间快速切换。结合 Tab 补全和 `pwd` 查看当前路径,能显著提升效率。此外,需注意特殊字符路径的正确引用及脚本中绝对路径的优先使用。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问