美文网首页
动态扩容LVM

动态扩容LVM

作者: 杰_6343 | 来源:发表于2019-10-29 10:56 被阅读0次

原理图

LVM.jpg

最近在上海新建机房的时候,给了我2台M2机型服务器,在做初始化的时候发现有一堆磁盘:

[root@Centos64:~]# fdisk -l | grep '300.1 GB' | sort
Disk /dev/sda: 300.1 GB, 300069052416 bytes
Disk /dev/sdb: 300.1 GB, 300069052416 bytes
Disk /dev/sdc: 300.1 GB, 300069052416 bytes
Disk /dev/sdd: 300.1 GB, 300069052416 bytes
Disk /dev/sde: 300.1 GB, 300069052416 bytes
Disk /dev/sdf: 300.1 GB, 300069052416 bytes
Disk /dev/sdg: 300.1 GB, 300069052416 bytes
Disk /dev/sdh: 300.1 GB, 300069052416 bytes
Disk /dev/sdi: 300.1 GB, 300069052416 bytes
Disk /dev/sdj: 300.1 GB, 300069052416 bytes
Disk /dev/sdk: 300.1 GB, 300069052416 bytes
Disk /dev/sdl: 300.1 GB, 300069052416 bytes

其中挂载的只有 /dev/sda,其他都在那闲着。运管那边告诉我这个机型不能做raid。而根据我这边的业务需求,我并不能一次用到这么多分区,所以必须使用LVM合并使用。

关于LVM的创建,目前网络上一堆详细教程,用起来也非常简单,这里就只贴一下我的过程。

①、用fdisk给每一个磁盘创建一个8e分区:

[root@Centos64:~]# fdisk /dev/sdb
 
The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.
 
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').
 
Command (m for help): n               #创建
Command action
   e   extended
   p   primary partition (1-4)
p                                     #选择主分区
Partition number (1-4): 1
First cylinder (1-36481, default 1): 1
Last cylinder, +cylinders or +size{K,M,G} (1-36481, default 36481): #直接回车选择最大
Using default value 36481
 
Command (m for help): t              #输入t进入类型选择
Selected partition 1
Hex code (type L to list codes): 8e  #输入8e格式
Changed system type of partition 1 to 8e (Linux LVM)
 
Command (m for help): w              #w保存

这样就完成了一块磁盘,接着我们依次将其他 sdc到sdl的磁盘也操作一把。

②、全部完成后,使用 pvcreate 将所有分区转化成物理卷,即添加LVM属性信息并划分PE存储单元:

[root@Centos64:~]# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1 /dev/sdj1 /dev/sdk1 /dev/sdl1
  
  Physical volume "/dev/sdb1" successfully created
  Physical volume "/dev/sdc1" successfully created
  Physical volume "/dev/sdd1" successfully created
  Physical volume "/dev/sde1" successfully created
  Physical volume "/dev/sdf1" successfully created
  Physical volume "/dev/sdg1" successfully created
  Physical volume "/dev/sdh1" successfully created
  Physical volume "/dev/sdi1" successfully created
  Physical volume "/dev/sdj1" successfully created
  Physical volume "/dev/sdk1" successfully created
  Physical volume "/dev/sdl1" successfully created

创建完PV之后,就可以使用 pvdisplay 或 pvs 查看详细信息了,篇幅有限,这里我就不贴了。

③、下面我们需要创建一个VG,然后PV都加入到这个卷组当中,卷名可自定义,比如 vg:

[root@Centos64:~]# vgcreate vg /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1 /dev/sdj1 /dev/sdk1 /dev/sdl1

    Volume group "vg" successfully created

同样,在创建好VG以后,我们也可以使用 vgdisplay 或者 vgs 命来来查看VG的信息(略)

④、接着,使用 lvcreate 命令基于VG创建逻辑卷,vg 和 lvm 我们自定义的名称:

[root@Centos64:~]# lvcreate -l 100%VG -n lvm vg
  
   Logical volume "lvm" created

同样我们可以使用 lvdisplay 或者 lvs 命令来查看创建好的逻辑卷的信息(略)

⑤、格式化创建的逻辑卷:

[root@Centos64:~]# mkfs.ext4 /dev/vg/lvm

⑥、挂载分区:

[root@Centos64:~]# mkdir /data
[root@Centos64:~]# echo '/dev/vg/lvm  /data  ext4 noatime,acl,user_xattr  1 2' >> /dev/fstab
[root@Centos64:~]# mount -a
[root@Centos64:~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             9.9G  2.1G  7.4G  22% /
/dev/sda3              20G  370M   19G   2% /usr/local
tmpfs                  16G     0   16G   0% /dev/shm
/dev/sda4             244G  205M  232G   1% /data1
/dev/mapper/vg-lvm   3.1T  932M  3.0T   1% /data

这样,我们就完成了LVM的手工创建过程了,我还有一台M2要弄,而且听运管说以后会继续交付这类机型,我可不想这么苦逼的操作了,光那个创建8e格式分区就已经很坑了。

所以,就将上面的操作串成脚本,一键完成:

#!/bin/bash
#  1.格式化多个磁盘分区
#  2.pvcreate将所有分区转化为物理卷pv,划分为pe存储单元
#  3.vgcreate将pv加入卷组vg
#  4.lvcreate基于卷组创建逻辑卷lv
#  5.最后格式化逻辑卷并挂载分区
partition=/data                # 定义最终挂载的名称
vgname=vg                      # 定义逻辑卷组的名称
lvname=lvm                     # 定义逻辑卷的名称
code='b c d e f g h i k j l'   # 根据分区的实际情况修改
 
disk=
for i in $code  
do
fdisk /dev/sd$i << EOF          # 这里自动化完成了所有分区fdisk苦逼的交互步骤
n
p
1
1
t
8e
w
EOF
disk="$disk /dev/sd${i}1" # 将所有分区拼起来
done
 
pvcreate $disk
vgcreate $vgname $disk
lvcreate -l 100%VG -n $lvmname $vgname
mkfs.ext4 /dev/$vgname/$lvmname
 
mkdir -p $partition
echo "/dev/$vgname/$lvmname  $partition  ext4 noatime,acl,user_xattr  1 2' >> /dev/fstab
mount -a
df -h

来源

相关文章

  • Linux_126_LVM原理

    LVM原理 LVM动态扩容大小,其实就是通过互相交换PE的过程,达到能够弹性扩容分区大小 想要减少空间容量,就是剔...

  • 动态扩容LVM

    原理图 最近在上海新建机房的时候,给了我2台M2机型服务器,在做初始化的时候发现有一堆磁盘: 其中挂载的只有 /d...

  • 存储管理Ⅱ-swap、逻辑卷

    一.存储管理Ⅱ 1.逻辑卷LVM 1.1.LVM管理 在线扩容 online 创建LVM VG的扩容 LVM的扩容...

  • 2020-03-23 LVM

    1.创建lvm 2.删除lvm 3.lvm fs扩容 4.vg扩容pvcreate /dev/sddvgexten...

  • centos7 磁盘扩容

    LVM扩容(centos7) 一 、LVM扩容准备 1.1 查看fdisk 1.2 查看所有存储设备 其中 /de...

  • Linux_127_lvm创建流程

    lvm的优点 lvm的文件系统可以跨越多个磁盘,分区大小不受磁盘容量限制 可以在系统运行中,直接动态扩容文件系统大...

  • kvm虚拟机(centos7)磁盘扩容

    1·添加磁盘 2.创建分区 3.lvm扩容 对xfs格式的lvm扩容后需要使用xfs_growfs进行系统扩容,而...

  • 磁盘扩容实战

    不损坏数据的情况下扩容非lvm磁盘 磁盘中有重要数据时请提前备份数据 扩容LVM类型磁盘 fstab 配置详解 第...

  • lvm扩容

    1,插硬盘,装工具 2,创建pv 3,创建vg 4,创建lv 5,格式化lv 6,挂载 7,扩容

  • lvm扩容

    参考:https://www.jianshu.com/p/273daea17b2a 创建分区 刷新分区并创建物理卷...

网友评论

      本文标题:动态扩容LVM

      本文链接:https://www.haomeiwen.com/subject/rdewvctx.html