Administrator
发布于 2024-01-25 / 11 阅读
0
0

Linux磁盘扩容

Linux磁盘

磁盘分区

linux磁盘分区,分为2种格式:MBR和GPT

其中,MBR格式,大小必须要求小于2TB
GPT格式,大小不做限制,可以小于2TB,也可以大于2TB

创建分区的2个工具:fdisk & parted

Linux系统中有两个分区工具

  • fdisk
  • parted

二者都可以对linux的硬盘进行分区,但是二者从细节上来说,又有很大的区别,如果不加注意,有可能造成磁盘空间的浪费。

1、fdisk
(1)fdisk命令只支持msdos,分区的时候只支持小容量硬盘(<=2T),但是如果不需要分区的话,那么整块sdb硬盘,类型为msdos,那么他的大小是可以大于2T的。
(2)fdisk命令不支持gpt,所以当使用fdisk命令给gpt类型硬盘分区是会出现告警,就像下面例子中的WARNING

2、parted:

(1)支持msdos和gpt,可以支持大硬盘,也支持小硬盘。
(2)区分parted命令给msdos类型和gpt类型硬盘分区的不同:

上面说的msdos又被称为mbr

LVM:逻辑卷管理

LVM(Logical Volume Manager,逻辑卷管理器)是一种强大的磁盘管理工具,它为管理员提供了比传统分区管理更高效、更灵活的方式。

使用 lvm,用户可以创建、调整和管理逻辑卷,实现动态的磁盘空间分配和扩展。

1. 什么是 lvm?

LVM(Logical Volume Manager)是一种磁盘管理工具,它允许用户将多个物理磁盘和分区整合成一个虚拟的逻辑卷池。这种虚拟化存储的方式,使得磁盘的管理更加灵活,能够动态调整存储容量,而无需重新分区。

1.1 lvm 的主要特点
动态分配和扩展存储:可以根据需要动态扩展或缩减逻辑卷的大小。
卷组管理:多个物理磁盘可以组合成一个卷组,逻辑卷则是卷组中的一个子集。
快照功能:支持创建文件系统的快照,方便备份和恢复。
高效的空间利用:支持精细化的空间管理,最大程度提高磁盘空间的使用效率。

2. lvm 的基本组成

lvm 系统由三个主要部分组成:

物理卷(Physical Volume,PV):物理卷是 lvm 的基本存储单位,通常是磁盘分区或整个磁盘。它包含了存储的数据和元数据。
卷组(Volume Group,VG):卷组由一个或多个物理卷组成,它提供一个统一的存储池,可以在其上创建逻辑卷。
逻辑卷(Logical Volume,LV):逻辑卷是在卷组中分配出来的存储单元,类似于传统分区。它可以动态调整大小,适应不同的存储需求。

  1. 常用 lvm 命令
    lvm 提供了多种命令用于创建、管理和调整磁盘存储。以下是一些常用的 lvm 命令和操作示例:

3.1 创建物理卷
首先,使用 pvcreate 命令将磁盘或磁盘分区初始化为物理卷:

pvcreate /dev/sda1

/dev/sda1 是磁盘分区,创建物理卷后,它将变成 LVM 系统的一部分。

3.2 创建卷组
使用 vgcreate 命令将一个或多个物理卷组合成卷组:

 vgcreate vg_data /dev/sda1 /dev/sdb1

vg_data 是卷组的名称,/dev/sda1 和 /dev/sdb1 是物理卷的设备路径。

3.3 创建逻辑卷
在卷组中,使用 lvcreate 命令创建逻辑卷:

lvcreate -n lv_data -L 50G vg_data

lv_data 是逻辑卷的名称,L 50G 表示创建一个 50GB 的逻辑卷,vg_data 是逻辑卷所在的卷组。

3.4 扩展逻辑卷
逻辑卷的大小可以在创建后动态调整,使用 lvextend 命令扩展逻辑卷:

lvextend -L +20G /dev/vg_data/lv_data

L +20G 表示将 lv_data 逻辑卷扩展 20GB。
扩展逻辑卷后,需要调整文件系统的大小以匹配新的空间。

3.6 删除逻辑卷、卷组和物理卷
删除逻辑卷:

lvremove /dev/vg_data/lv_data

删除卷组:

vgremove vg_data

删除物理卷:

pvremove /dev/sda1

5. LVM 的优势与不足

5.1 优势
灵活性高:LVM 允许动态调整存储空间,可以轻松扩展或缩小磁盘分区。
高效空间利用:多个物理卷可以组合成卷组,有效提高磁盘空间的利用率。
快照功能:能够创建文件系统的快照,方便备份和恢复数据。
简化管理:比传统的分区管理方式更加简便,尤其适用于大规模的存储环境。
5.2 不足
复杂性:LVM 的学习曲线较为陡峭,初学者可能需要时间来掌握。
性能开销:由于 LVM 需要管理多个物理卷和逻辑卷,在某些情况下可能会引入一些性能开销。
恢复困难:在磁盘发生故障或逻辑卷损坏时,LVM 的恢复过程可能较为复杂。
6. 总结
LVM 是 Linux 系统中一个强大且灵活的磁盘管理工具,它允许用户根据需求动态调整磁盘分区大小、创建快照并进行高效的存储管理。对于大规模服务器或需要频繁扩展存储的环境,LVM 提供了比传统分区方式更高效的解决方案。掌握 lvm 的基本命令和高级功能,可以极大地提升系统管理员在磁盘管理方面的工作效率。

Vmware磁盘扩容

查看原系统

# 查看物理卷 

[root@localhost ~]# pvs
  PV             VG Fmt  Attr PSize   PFree
 /dev/nvme0n1p2 rl lvm2 a--  <18.91g 8.0


# 查看虚拟卷分组

[root@localhost ~]# vgs
  VG #PV #LV #SN Attr   VSize   VFree
  rl   1   2   0 wz--n- <18.91g 8.00



# 查看逻辑卷
[root@localhost ~]# lvs
  LV   VG Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root rl -wi-ao---- <14.90g                                                    
  swap rl -wi-ao----   4.00g

# 查看数据盘和分区
[root@localhost ~]# df -Th
Filesystem          Type      Size  Used Avail Use% Mounted on
devtmpfs            devtmpfs  874M     0  874M   0% /dev
tmpfs               tmpfs     893M     0  893M   0% /dev/shm
tmpfs               tmpfs     893M  8.7M  885M   1% /run
tmpfs               tmpfs     893M     0  893M   0% /sys/fs/cgroup
/dev/mapper/rl-root xfs        15G  1.9G   14G  13% /
/dev/nvme0n1p1      xfs      1014M  191M  824M  19% /boot
tmpfs               tmpfs     179M     0  179M   0% /run/user/0


# 查看磁盘分区的格式,是MBR还是GPT

[root@localhost ~]# parted -l
Model: NVMe Device (nvme)
Disk /dev/nvme0n1: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  1075MB  1074MB  primary  xfs          boot
 2      1075MB  21.4GB  20.3GB  primary               lvm




上面的msdos,表示是分区格式是:MBR分区

逻辑卷的意思就是:D盘、E盘、F盘,所有的逻辑卷共同构成了虚拟卷。

也就是说,虚拟卷可以拆分成多个逻辑卷。

比如上面的rl虚拟卷,拆分成了以下几个逻辑卷:

  • rl-root
  • rl-home
  • rl-swap

扩展磁盘

上面,我们能看到根目录下,原来的磁盘容量是15个G,我们想扩展到30个G。具体操作如下:

vmware扩展

关闭Vmware 的 Linux系统,这样,才能在VMWare菜单中设置。

输入你想要扩展到多少G。

上面的设置完成后,开启虚拟机

在虚拟机中的操作

[root@localhost ~]# df -Th
Filesystem          Type      Size  Used Avail Use% Mounted on
devtmpfs            devtmpfs  874M     0  874M   0% /dev
tmpfs               tmpfs     893M     0  893M   0% /dev/shm
tmpfs               tmpfs     893M  8.7M  885M   1% /run
tmpfs               tmpfs     893M     0  893M   0% /sys/fs/cgroup
/dev/mapper/rl-root xfs        15G  2.0G   13G  13% /
/dev/nvme0n1p1      xfs      1014M  191M  824M  19% /boot
tmpfs               tmpfs     179M     0  179M   0% /run/user/0

通过上面的命令,可以看到,根目录还是15G,磁盘的扩容,没有立即生效。所以,需要做以下操作

#  查看硬盘信息
[root@localhost ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0          11:0    1  2.2G  0 rom  
nvme0n1     259:0    0   35G  0 disk 
├─nvme0n1p1 259:1    0    1G  0 part /boot
└─nvme0n1p2 259:2    0 18.9G  0 part 
  ├─rl-root 253:0    0 14.9G  0 lvm  /
  └─rl-swap 253:1    0    4G  0 lvm  [SWAP]

# 创建新的分区

fdisk /dev/nvme0n1




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): m

Help:

  DOS (MBR)
   a   toggle a bootable flag
   b   edit nested BSD disklabel
   c   toggle the dos compatibility flag

  Generic
   d   delete a partition
   F   list free unpartitioned space
   l   list known partition types
   n   add a new partition
   p   print the partition table
   t   change a partition type
   v   verify the partition table
   i   print information about a partition

  Misc
   m   print this menu
   u   change display/entry units
   x   extra functionality (experts only)

  Script
   I   load disk layout from sfdisk script file
   O   dump disk layout to sfdisk script file

  Save & Exit
   w   write table to disk and exit
   q   quit without saving changes

  Create a new label
   g   create a new empty GPT partition table
   G   create a new empty SGI (IRIX) partition table
   o   create a new empty DOS partition table
   s   create a new empty Sun partition table


通过上面的命令提示,我们知道,想添加一个新分区,需要使用命令n



Command (m for help): n
Partition type
   p   primary (2 primary, 0 extended, 2 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (3,4, default 3): 3
First sector (41756672-73400319, default 41756672): 
Last sector, +sectors or +size{K,M,G,T,P} (41756672-73400319, default 73400319): 

Created a new partition 3 of type 'Linux' and of size 15.1 GiB.


上面的命令,让我们选择是primary还是extend,我们选择了primary,代表主分区飞意思

然后,让我们选择分区编号,我们选了3。

然后,又让我们选择分区的开始值和结束值,都是使用默认值,直接敲击enter键即可。

接下来,输入命令w,意思是保存并退出fdisk分区工具

Command (m for help): w
The partition table has been altered.
Syncing disks.

接下来,查看硬盘信息:

[root@localhost ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0          11:0    1  2.2G  0 rom  
nvme0n1     259:0    0   35G  0 disk 
├─nvme0n1p1 259:1    0    1G  0 part /boot
├─nvme0n1p2 259:2    0 18.9G  0 part 
│ ├─rl-root 253:0    0 14.9G  0 lvm  /
│ └─rl-swap 253:1    0    4G  0 lvm  [SWAP]
└─nvme0n1p3 259:3    0 15.1G  0 part 

可以看到,编号为3的分区,已经添加上了,size是15.1G

# 分区格式化
mkfs -t xfs /dev/nvme0n1p3


# 创建物理卷
[root@localhost ~]# pvcreate /dev/nvme0n1p3
WARNING: xfs signature detected on /dev/nvme0n1p3 at offset 0. Wipe it? [y/n]: y
  Wiping xfs signature on /dev/nvme0n1p3.
  Physical volume "/dev/nvme0n1p3" successfully created.


# 查看物理卷
[root@localhost ~]# pvs
  PV             VG Fmt  Attr PSize   PFree  
  /dev/nvme0n1p2 rl lvm2 a--  <18.91g   8.00m
  /dev/nvme0n1p3    lvm2 ---  <15.09g <15.09g


# 扩展虚拟卷,nvme0n1p3加入到rl(这个名字从上面vgs中VG字段获取)

[root@localhost ~]# vgextend rl /dev/nvme0n1p3
  Volume group "rl" successfully extended

# 查看虚拟卷[root@localhost ~]# vgs
  VG #PV #LV #SN Attr   VSize  VFree 
  rl   2   2   0 wz--n- 33.99g 15.09g


可以看到由原来的18.91G变成了33.99G。其中15.09G是空闲的

# 查看要扩容的文件系统的位置 ,这里是/dev/mapper/rl-root

[root@localhost ~]# df -Th
Filesystem          Type      Size  Used Avail Use% Mounted on
devtmpfs            devtmpfs  874M     0  874M   0% /dev
tmpfs               tmpfs     893M     0  893M   0% /dev/shm
tmpfs               tmpfs     893M  8.7M  885M   1% /run
tmpfs               tmpfs     893M     0  893M   0% /sys/fs/cgroup
/dev/mapper/rl-root xfs        15G  2.0G   13G  14% /
/dev/nvme0n1p1      xfs      1014M  191M  824M  19% /boot
tmpfs               tmpfs     179M     0  179M   0% /run/user/0


# 这个命令的意思是:将所有的空闲大小都加入到需要扩容的/dev/mapper/rl-root逻辑卷中

[root@localhost ~]# lvextend -l +100%free /dev/mapper/rl-root
  Size of logical volume rl/root changed from <14.90 GiB (3814 extents) to 29.99 GiB (7678 extents).
  Logical volume rl/root successfully resized.




# 扩容,调整分区
[root@localhost ~]# xfs_growfs /dev/mapper/rl-root
meta-data=/dev/mapper/rl-root    isize=512    agcount=4, agsize=976384 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=0 inobtcount=0
data     =                       bsize=4096   blocks=3905536, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 3905536 to 7862272





# 查看,磁盘扩容是否成功:可以看到size已经从原来的15G,升级到现在的30G

[root@localhost ~]# df -Th
Filesystem          Type      Size  Used Avail Use% Mounted on
devtmpfs            devtmpfs  874M     0  874M   0% /dev
tmpfs               tmpfs     893M     0  893M   0% /dev/shm
tmpfs               tmpfs     893M  8.7M  885M   1% /run
tmpfs               tmpfs     893M     0  893M   0% /sys/fs/cgroup
/dev/mapper/rl-root xfs        30G  2.1G   28G   7% /
/dev/nvme0n1p1      xfs      1014M  191M  824M  19% /boot
tmpfs               tmpfs     179M     0  179M   0% /run/user/0


[root@localhost ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0          11:0    1  2.2G  0 rom  
nvme0n1     259:0    0   35G  0 disk 
├─nvme0n1p1 259:1    0    1G  0 part /boot
├─nvme0n1p2 259:2    0 18.9G  0 part 
│ ├─rl-root 253:0    0   30G  0 lvm  /
│ └─rl-swap 253:1    0    4G  0 lvm  [SWAP]
└─nvme0n1p3 259:3    0 15.1G  0 part 
  └─rl-root 253:0    0   30G  0 lvm  /



评论