linux扩容新硬盘
  

疯狂的小刀 2399

{{ttag.title}}
在服务器使用过程中经常会遇到使用空间不足的情况,需要增加硬盘。
1.扩容正在使用的目录 LVM在线扩容
一. LVM简介
LVM是逻辑卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的逻辑层,来提高磁盘分区管理的灵活性。
LVM的工作原理其实很简单,它就是通过将底层的物理磁盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过逻辑卷来对其进行底层的磁盘管理操作。比如说我增加一个物理硬盘,这个时候上层的服务是感觉不到的,因为呈现给上层服务的是以逻辑卷的方式。
LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。
二. LVM基本术语
物理磁盘
物理存储介质(The physical media):这里指系统的存储设备:硬盘,如:/dev/xvda、/dev/vdb等等,是存储系统最低层的存储单元。
PV(Physical Volume)- 物理卷
物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘
VG(Volumne Group)- 卷组
卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。
LV(Logical Volume)- 逻辑卷
逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组。
查找新的磁盘
# fdisk -l

这里看到的新的磁盘设备名是:/dev/sdb。
创建分区
fdisk /dev/sdb
操作命令 n、p、1、回车、回车、t、8e、w
[root@tsbweb1 data]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):p

磁盘 /dev/sdb:17.2 GB, 17179869184 字节,33554432 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xbb986126

   设备 Boot      Start         End      Blocks   Id  System

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-33554431,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-33554431,默认为 33554431):
将使用默认值 33554431
分区 1 已设置为 Linux 类型,大小设为 16 GiB

命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):L

0  空              24  NEC DOS         81  Minix / 旧 Linu bf  Solaris        
1  FAT12           27  隐藏的 NTFS Win 82  Linux 交换 / So c1  DRDOS/sec (FAT-
2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
3  XENIX usr       3c  PartitionMagic  84  OS/2 隐藏的 C:  c6  DRDOS/sec (FAT-
4  FAT16 <32M      40  Venix 80286     85  Linux 扩展      c7  Syrinx         
5  扩展            41  PPC PReP Boot   86  NTFS 卷集       da  非文件系统数据
6  FAT16           42  SFS             87  NTFS 卷集       db  CP/M / CTOS / .
7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux 纯文本    de  Dell 工具      
8  AIX             4e  QNX4.x 第2部分  8e  Linux LVM       df  BootIt         
9  AIX 可启动      4f  QNX4.x 第3部分  93  Amoeba          e1  DOS 访问      
a  OS/2 启动管理器 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad 休 eb  BeOS fs        
e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
f  W95 扩展 (LBA)  54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC  
11  隐藏的 FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
12  Compaq 诊断     5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
14  隐藏的 FAT16 <3 61  SpeedStor       ab  Darwin 启动     f2  DOS 次要      
16  隐藏的 FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS   
17  隐藏的 HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE
18  AST 智能睡眠    65  Novell Netware  b8  BSDI swap       fd  Linux raid 自动
1b  隐藏的 W95 FAT3 70  DiskSecure 多启 bb  Boot Wizard 隐  fe  LANstep        
1c  隐藏的 W95 FAT3 75  PC/IX           be  Solaris 启动    ff  BBT            
1e  隐藏的 W95 FAT1 80  旧 Minix      
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:17.2 GB, 17179869184 字节,33554432 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xbb986126

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    33554431    16776192   8e  Linux LVM

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。


创建物理卷(PV)
# pvcreate /dev/sdb1
[root@tsbweb1 data]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created

扩展VG
[root@tsbweb1 data]# vgextend rhel_kandy /dev/sdb1
  Volume group "rhel_kandy" successfully extended
[root@tsbweb1 data]# vgdisplay
  --- Volume group ---
  VG Name               rhel_kandy
  System ID            
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               65.50 GiB
  PE Size               4.00 MiB
  Total PE              16769
  Alloc PE / Size       12664 / 49.47 GiB
  Free  PE / Size       4105 / 16.04 GiB
  VG UUID               7ZYehh-nfbe-36jd-p0Vm-892M-aZxh-r4kRrU

扩展LV
lvextend -L +10G /dev/rhel_kandy/root
[root@tsbweb1 data]# lvextend -L +10G /dev/rhel_kandy/root
  Size of logical volume rhel_kandy/root changed from 44.47 GiB (11384 extents) to 54.47 GiB (13944 extents).
  Logical volume root successfully resized.

激活VG
[root@tsbweb1 data]# vgchange -a y rhel_kandy
  2 logical volume(s) in volume group "rhel_kandy" now active

调整文件系统大小
resize2fs /dev/mapper/rhel_kandy-root或者xfs_growfs
[root@tsbweb1 data]# xfs_growfs /dev/mapper/rhel_kandy-root
meta-data=/dev/mapper/rhel_kandy-root isize=256    agcount=4, agsize=2914304 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=11657216, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=5692, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 11657216 to 14278656


检查已经扩容成功
[root@tsbweb1 data]# df -h
文件系统                     容量  已用  可用 已用% 挂载点
/dev/mapper/rhel_kandy-root   55G   19G   36G   35% /
devtmpfs                     7.9G     0  7.9G    0% /dev
tmpfs                        7.9G     0  7.9G    0% /dev/shm
tmpfs                        7.9G  450M  7.4G    6% /run
tmpfs                        7.9G     0  7.9G    0% /sys/fs/cgroup
/dev/sda1                    497M  108M  390M   22% /boot
tmpfs                        1.6G     0  1.6G    0% /run/user/0
实操命令记录:
  458  fdisk -l
  459  fdisk /dev/vdc
  460  pvcreate /dev/vdc1
  461  lsblk
  462  vgextend  rhel /dev/vdc1
  463  lvextend -L +400G /dev/rhel/root
  464  lvextend -L +398G /dev/rhel/root
  465  vgchange -a -y rhel
  466  vgchange -a -y rhel/root
  467  vgchange -a y rhel
  468  xfs_growfs /dev/mapper/rhel-root
  469  df -h
  470  exit
  471  history

2.扩容新的目录大小
磁盘
在Linux系统中所有的设备都会以文件的形式存储。设备一般保存在/dev目录下面,以sda、sda1、sda2 ...,sdb、sdb1...,hda,hdb。现在的设备一般都是sd命名,以前的很老的硬盘是以ha命名。
sda:第一块硬盘,如果对磁盘进行了分区会有sda1(第一个分区),sda2等。
sdb:第二个硬盘,同样对硬盘分区后有sdb1,sdb2等。

分区
分区的目的就是便于管理,比如在Windows系统我们一般会分C盘,D盘,E盘等。

Linux只能创建4个主分区,如果需要创建更多的分区那么久必须创建逻辑分区,其中逻辑分区需要占用一个主分区。

文件系统
Linux中的文件系统也就是分区类型,在Windows中有NTEF,FAT32等,linux中常见的有Ext2、Ext3、Ext4、Linux swap、proc、sysfs、tmpfs等,可以通过mount命名查看当前已挂载的文件系统。

格式化
在前面创建完分区后有一步是要对分区进行格式化,其实在Windows系统中也是一样,在创建好一个分区后也需要将分区格式化,只有格式化成具体的文件类型才能使用。

挂载
在Windows中分区格式化后就可以使用,但是在Linux系统中必须将分区挂载到具体的路径下才可以。

常用命令
```lsblk 查看当前磁盘情况 df -lh 查看文件系统情况 -l 查看挂载点 parted -l 会列出文件系统类型 fdisk -l 查看当前未挂载硬盘 ```
挂载新硬盘
挂载一个新硬盘基本思路是:创建分区、创建文件系统、挂载。

一、查看新硬盘
首先,查看硬盘状况:

```fdisk -l ```
其中:
如果磁盘下面有类似:Disk /dev/sdc doesn't contain a valid partition table;或者说磁盘下面没有类似于:sdb1 sdb2 说明该磁盘未挂载

这里假设看到硬盘名为 /dev/vdc1

二、创建分区
```dfisk /dev/vdc ```
根据提示,依次输入"n","p" "1",两次回车,"wq"
意思就是新建一个主分区(1),大小是整个sdb磁盘,然后写入。

注:上述操作为了简便,只是创建一个主分区。其实一个磁盘最多有四个主分区(包括一个扩展分区),1-4都是主分区,我们也可以把一个分区作为扩展分区(通过df -lh 查看到的system为Extended)

此时磁盘已经分区,但是还没有文件系统,磁盘依然不能用

三、写入系统
```mkfs.ext4 /dev/vdc1
该命令会格式化磁盘并写入文件系统

四、挂载
比如挂载到/data下面


mkdir /data # 如果存在此步省略
mount /dev/vdc1  /data
五、设置开机自动挂载
以上只是临时挂载,还需设置为开机自动挂载


vim /etc/fstab


# 然后在内容结尾处增加一行(注意文件类型要对应):

/dev/vdc1    /data    ext4    defaults    0 0

打赏鼓励作者,期待更多好文!

打赏
3人已打赏

飞翔的苹果 发表于 2021-9-22 08:18
  
感谢分享,有助于工作,学习学习
gqce 发表于 2021-9-24 15:10
  
何茂源 发表于 2021-12-26 23:03
  
楼主分析的很详细,不错的实战经验,小白用户一看就懂,非常好的技术干货帖,顶一个!
新手276612 发表于 2021-12-26 23:18
  
感谢分享,有助于工作,学习学习。
dhf 发表于 2022-1-29 21:25
  
感谢楼主的精彩分享,有助工作!!!
呆呆蛙 发表于 2023-2-5 08:55
  
感谢楼主的精彩分享,有助工作!!!
发表新帖
热门标签
全部标签>
西北区每日一问
安全效果
【 社区to talk】
高手请过招
社区新周刊
每日一问
新版本体验
纪元平台
产品连连看
标准化排查
干货满满
技术咨询
GIF动图学习
信服课堂视频
功能体验
解决方案
社区帮助指南
每周精选
S豆商城资讯
秒懂零信任
自助服务平台操作指引
技术盲盒
畅聊IT
答题自测
专家问答
技术笔记
技术圆桌
在线直播
MVP
网络基础知识
安装部署配置
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
每日一记
运维工具
云计算知识
用户认证
原创分享
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告
玩转零信任
信服圈儿
技术争霸赛
「智能机器人」
追光者计划
深信服技术支持平台
答题榜单公布
2023技术争霸赛专题
通用技术
卧龙计划
华北区拉练
天逸直播
以战代练
技术晨报
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
排障那些事
升级&主动服务
高频问题集锦
POC测试案例
全能先锋系列
云化安全能力

本版版主

461
247
13

发帖

粉丝

关注

本版达人

feeling

本周分享达人

新手29676...

本周提问达人