centos存储扩容配置(基于LVM)

  在全栈开发项目中,当项目已经部署到服务器(虚拟机、物理机或者云主机)后,有些分区若空间分配不合理,数据库以及相关日志文件将很快占满磁盘空间,因此需在后期手动为项目所在服务器空间进行扩容。

步骤
  1. 查看
  2. 分区
  3. 格式化
  4. 挂载到相应目录上
  • 查看fdisk -l

确认容量不足,可以使用dd命令创建一个1G文件看看

[root@nn ~]# dd if=/dev/zero of=1.0G.img bs=1M count=1000
dd: error writing ‘1.0G.img’: No space left on device
134+0 records in
133+0 records out
139460608 bytes (139 MB) copied, 0.471449 s, 296 MB/s

dd: error writing ‘1.0G.img’: No space left on device

[root@nn ~]# fdisk -l
Disk /dev/sda: 4294 MB, 4294967296 bytes, 8388608 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk label type: dos
Disk identifier: 0x000cef21

  Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200     8388607     3144704   8e  Linux LVM

Disk /dev/sdb: 5368 MB, 5368709120 bytes, 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Disk /dev/mapper/centos-root: 2785 MB, 2785017856 bytes, 5439488 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Disk /dev/mapper/centos-swap: 432 MB, 432013312 bytes, 843776 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

以上指:
两个存储(硬盘)设备分别sda和sdb
Disk /dev/sda: 4294 MB,该硬盘已分区:sda1,sda2,原系统使用4G的存储空间
Disk /dev/sdb: 5368 MB,该硬盘未分区,5G硬盘为新增
以下信息,扇区有分逻辑扇区和物理扇区,对应512字节和4096字节,为何如此规划?
Disk /dev/sda: 4294 MB, 4294967296 bytes, 8388608 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
参考IBM官网开发者论坛的解释:
解释得挺通俗易懂

  • 大致意思:原计算机界存储底层设计一个物理扇区对应512字节,里面包括数据和纠错冗余码,但现在需要存储大量数据,需要 提高每个物理扇区的字节容量,才能从整体上扩大硬盘容量,也让每个扇区放入更强大的纠错算法,从而达到增加磁盘容量+提高可靠性两方面提升
  • 在以往计算机的软件产业链里面,都是基于512 字节扇区来设计和实现,例如在基本输入/输出系统(BIOS)、引导装载程序、操作系统内核、文件系统代码和磁盘工具等工具中,也就是“软件层”只认512标准,物理扇区却提供4096,如何处理这种矛盾?
  • 采用“中间件(内核驱动?)”软件层, 将底层物理扇区划分为8个512字节的扇区,对于“软件层”来说,它们还是基于在512字节的扇区去操作数据,西部数据是第一家生产这种磁盘的制造商,它用“ Advanced Format ”来代表带 4096 字节物理扇区且向 512 字节逻辑扇区转换的磁盘
    既然涉及到数据写入4096字节物理扇区的的磁盘,中间需要分8个逻辑扇区去写入,那么这个过程是性能损耗的,具体说明如下:
    最新的文件系统使用 4096 字节或更大尺寸的数据结构,因此,大部分磁盘 I/O 操作占用4k倍数的大小扇区,假设现在Linux系统要将一个文件写入到磁盘,
    (1)当文件系统数据结构正好与底层物理分区4k大小一致,对 4k字节数据结构的读,就是直接对单一扇区的读写,因此硬盘的固件不需要做其他操作,不影响性能;
    (2) 但当文件系统数据结构与底层物理扇区4k不完全一致时,例如文件为7k大小,读写操作必须使用两个物理扇区,对于读操作,因为读写头总是以大概率扫过连续两个扇区,不会消耗而外时间,而对于写操作,磁盘的固件首先读取两个物理扇区,修改两个扇区的分区(分成2*8=16个逻辑扇区),然后入两个物理扇区。该操作所需时间比 4k占用一个扇区时所需时间多。因此,性能下降。
    (3)如何判断文件数据结构是否得到合理对齐(放置到扇区上)? 大多数文件系统将其数据结构与包含其本身的分区开头对齐。因此,如果一个分区起始于以一个 4096 字节(或8 个扇区的分界)边界,例如下表所示,则表示它得到合理对齐
分区startend
sda120484096
sda240968192
sda38192(8192+4096*10000)
  • 分区

在使用fdisk /dev/sdb 进行分区时,由于centos已经默认第一个分区的边界时从2048开始,而是不是从0,128等小值开始,以下是以4096作为分区的起始值,为何要以一个大值作为第一个扇区边界值:为 MBR 与第一个分区之间的未分配空间中的装载引导程序代码留出空间
Partition number (1-4, default 1):
First sector (2048-10485759, default 2048) 4096
Last sector, +sectors or +size{K,M,G} (4096-10485759, default 10485759):
Using default value 10485759
Partition 1 of type Linux and of size 5 GiB is set
要设为LVM分区,t命令更改
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 8e
Changed type of partition ‘Linux’ to ‘Linux LVM’

Command (m for help): w
The partition table has been altered!
查看最新分区

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    10485759     5241856   8e  Linux LVM

5G硬盘已经被分区sdb1,LVM类型

  • 格式化

格式化为一定格式的文件系统,与目标挂载目录的文件系统一致
通过命令查看

[root@dn1 ~]# df -Th
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs       2G  1.9G  1  80% /
devtmpfs                devtmpfs  482M     0  482M   0% /dev
tmpfs                   tmpfs     494M     0  494M   0% /dev/shm
tmpfs                   tmpfs     494M  7.0M  487M   2% /run
tmpfs                   tmpfs     494M     0  494M   0% /sys/fs/cgroup
/dev/sda1               xfs      1014M  162M  853M  16% /boot
tmpfs                   tmpfs      99M     0   99M   0% /run/user/0  
....

以上可以看到根目录/ 文件系统格式为 xfs
故将sdb1格式为xfs

# 可以看到mkfs有常见的文件系统格式
[root@nn ~]# mkfs
mkfs         mkfs.btrfs   mkfs.cramfs  mkfs.ext2    mkfs.ext3    mkfs.ext4    mkfs.minix   mkfs.xfs 
# 将新分区格式为xfs
[root@nn ~]# mkfs.xfs /dev/sdb1
  • 调整目标LVM大小
    (1)查看现有Volume Group名称
[root@nn ~]# vgdisplay 
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  .....

这里vg名称为默认值:centos
(2)对新分区sdb1创建对应的物理卷

pvcreate /dev/sdb1

(3) 用以上物理卷扩展VG:centos

vgextend centos /dev/sdb1
# No physical volume label read from /dev/sdb1 Writing physical volume 
#data to disk "/dev/sdb1" 
#Physical volume "/dev/sdb1" successfully created 
#Volume group "centos" successfully extended

(4) 扩展 LVM 的逻辑卷 centos-root
查看有哪些LVM逻辑卷

[root@nn ~]# lvdisplay 
 --- Logical volume ---
 LV Path                /dev/centos/swap
 LV Name                swap
 VG Name                centos
 LV Size                412.00 MiB
 --- Logical volume ---
 LV Path                /dev/centos/root
 LV Name                root
 VG Name                centos
 LV Size                2.59 GiB

截取关键行,以上显示有两个逻辑卷,swap和root,都归属于VG:centos
现在要用sdb1增加的容量来扩展的root 逻辑卷,对于的LV path:/dev/centos/root
扩展
lvextend /dev/centos/root /dev/sdb1
调整大小
xfs_growfs /dev/centos/root

(5) 查看扩展效果

[root@nn ~]# lvscan 
  ACTIVE            '/dev/centos/swap' [412.00 MiB] inherit
  ACTIVE            '/dev/centos/root' [<7.59 GiB] inherit
[root@nn ~]# df -Th
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs       7.6G  2.9G  4.8G  38% /
devtmpfs                devtmpfs  482M     0  482M   0% /dev
tmpfs                   tmpfs     494M     0  494M   0% /dev/shm
tmpfs                   tmpfs     494M  7.0M  487M   2% /run
tmpfs                   tmpfs     494M     0  494M   0% /sys/fs/cgroup
/dev/sda1               xfs      1014M  162M  853M  16% /boot
tmpfs                   tmpfs      99M     0   99M   0% /run/user/0

以上都说明逻辑卷root对于根目录,容量从2.6G,扩展到7.6G

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值