小小千想和您聊一聊

当前位置: 首页> 技术分享> 云计算编程 LVM管理

云计算编程 LVM管理

  在线扩容 online

  数据迁移 online

  ====================================================================================

  创建LVM LVM叫逻辑卷管理

  VG扩展/缩小

  LV扩容

  文件系统扩容 在线扩容及在生产中 300G+900G硬盘 做单盘RAID0

  基本分区(MBR|GPT) ----> Filesystem ----> mount

  逻辑卷LVM ----> Filesystem ----> mount

  VG叫做卷组

  extents 叫做扩展块

  PE: Physical extent 物理扩展 4M 8M 16M 32M 64M 创建VG时指定 -s 8M

  LE: Logical extent 逻辑扩展

  新浪实际工作中

  启动VMware环境下的Linux操作系统,添加新分区,需要root账号身份。

  3.1 【fdisk -l】 最大分区为/dev/sda3,说明新创建的分区将会是sda4

  3.2 输入【fdisk /dev/sda】

  3.2.1命令行提示下输入【m】

  3.2.2输入命令【n】添加新分区。

  3.2.3输入命令【p】创建主分区。

  3.2.4输入【回车】,选择默认大小,这样不浪费空间

  3.2.5输入【回车】,选择默认的start cylinder。

  3.2.6输入【w】,保持修改

  3.3 输入【reboot】 重启linux,必须reboot,否则/dev/sda4无法格式化。

  3.4 这时在/dev/目录下,才能看到了新的分区比如/dev/sda4

  3.5 【mkfs.ext2 /dev/sda4】格式化

  3.6 在根目录下创建disk4目录

  3.7 【mount /dev/sda4 /disk4/】将分区mount到/disk4/上

  3.8 在vim修改/etc/fstab文件,加入【/dev/sda4 /disk4 ext2 defaults 0 0】一行,并保存,实现开机自动mount。

  注意 带有快照虚拟机需要安装软件后添加硬盘

  一、创建LVM

  0. 准备物理磁盘

  可以是: /dev/sdb /dev/sdc1

  [root@server0 ~]# ll /dev/vd{c,d,e}

  brw-rw----. 1 root disk 253, 32 Jun 6 17:38 /dev/vdc

  brw-rw----. 1 root disk 253, 48 Jun 6 17:38 /dev/vdd

  brw-rw----. 1 root disk 253, 64 Jun 6 17:38 /dev/vde

  1. pv

  [root@server0 ~]# pvcreate /dev/vdd

  Physical volume "/dev/vdd" successfully created

  [root@server0 ~]# pvscan

  PV /dev/vdd lvm2 [2.00 GiB]

  Total: 1 [2.00 GiB] / in use: 0 [0 ] / in no VG: 1 [2.00 GiB]

  [root@server0 ~]# pvs

  PV VG Fmt Attr PSize PFree

  /dev/vdd lvm2 a-- 2.00g 2.00g

  2. vg

  [root@server0 ~]# vgcreate vg1 /dev/vdd

  Volume group "vg1" successfully created

  [root@server0 ~]# vgs

  VG #PV #LV #SN Attr VSize VFree

  vg1 1 0 0 wz--n- 2.00g 2.00g

  [root@server0 ~]# vgscan

  Reading all physical volumes. This may take a while...

  Found volume group "vg1" using metadata type lvm2

  [root@server0 ~]# vgdisplay vgdisplay datevg

  --- Volume group ---

  VG Name vg1

  System ID

  Format lvm2

  Metadata Areas 1

  Metadata Sequence No 1

  VG Access read/write

  VG Status resizable

  MAX LV 0

  Cur LV 0

  Open LV 0

  Max PV 0

  Cur PV 1

  Act PV 1

  VG Size 2.00 GiB

  PE Size 4.00 MiB

  Total PE 511

  Alloc PE / Size 0 / 0

  Free PE / Size 511 / 2.00 GiB

  VG UUID 7E4tlj-l0a2-ph52-OytH-eaq7-58K6-2S4n8V

  3. lv

  [root@server0 ~]# lvcreate -l 10 -n lv1 vg1

  [root@server0 ~]# lvcreate -L 200M -n lv2 vg1

  [root@server0 ~]# lvscan

  ACTIVE '/dev/vg1/lv1' [640.00 MiB] inherit

  ACTIVE '/dev/vg1/lv2' [256.00 MiB] inherit

  4. 创建文件系统并挂载

  [root@server0 ~]# mkfs.xfs /dev/vg1/lv1

  [root@server0 ~]# mkfs.ext4 /dev/vg1/lv2

  [root@server0 ~]# mkdir /mnt/lv1 /mnt/lv2

  [root@server0 ~]# vim /etc/fstab

  /dev/vg1/lv1 /mnt/lv1 xfs defaults 0 0

  /dev/vg1/lv2 /mnt/lv2 ext4 defaults 0 0

  [root@server0 ~]# mount -a

  [root@server0 ~]# df

  Filesystem 1K-blocks Used Available Use% Mounted on

  /dev/mapper/vg1-lv1 651948 32928 619020 6% /mnt/lv1

  /dev/mapper/vg1-lv2 245671 2062 226406 1% /mnt/lv2

  二、VG管理

  ==扩大VG vgextend==

  1. pv

  [root@server0 ~]# pvcreate /dev/vde

  2. vgextend

  [root@server0 ~]# vgextend vg1 /dev/vde

  Volume group "vg1" successfully extended

  [root@server0 ~]# vgs

  VG #PV #LV #SN Attr VSize VFree

  vg1 2 2 0 wz--n- 3.99g 3.76g

  ==减小VG vgreduce==

  通常先做数据的迁移

  1.查看当前的VG中PV的使用情况

  [root@server0 ~]# pvs

  PV VG Fmt Attr PSize PFree

  /dev/vdd vg1 lvm2 a-- 2.00g 1.76g

  /dev/vde vg1 lvm2 a-- 2.00g 2.00g

  2. pvmove数据到其它PV

  [root@server0 ~]# pvmove /dev/vdd

  /dev/vdd: Moved: 16.7%

  /dev/vdd: Moved: 100.0%

  [root@server0 ~]# pvs

  PV VG Fmt Attr PSize PFree

  /dev/vdd vg1 lvm2 a-- 2.00g 2.00g

  /dev/vde vg1 lvm2 a-- 2.00g 1.76g

  3.vgreduce VG

  [root@server0 ~]# vgreduce vg1 /dev/vdd

  Removed "/dev/vdd" from volume group "vg1"

  [root@server0 ~]# vgs

  VG #PV #LV #SN Attr VSize VFree

  vg1 1 2 0 wz--n- 2.00g 1.76g

  三、LV扩容

  1. lv扩容

  [root@server0 ~]# vgs

  VG #PV #LV #SN Attr VSize VFree

  vg1 2 2 0 wz--n- 1.88g 1.00g

  [root@server0 ~]# lvextend -L 800M /dev/vg1/lv1

  [root@server0 ~]# lvextend -L +800M /dev/vg1/lv1

  [root@server0 ~]# lvextend -l 15 /dev/vg1/lv1

  [root@server0 ~]# lvextend -l +15 /dev/vg1/lv1

  =======================================

  +50%FREE

  =======================================

  [root@server0 ~]# lvscan

  ACTIVE '/dev/vg1/lv1' [768.00 MiB] inherit

  ACTIVE '/dev/vg1/lv2' [512.00 MiB] inherit

  2. FS扩容

  [root@server0 ~]# df -Th

  /dev/mapper/vg1-lv1 xfs 637M 67M 570M 11% /mnt/lv1

  /dev/mapper/vg1-lv2 ext4 240M 32M 192M 15% /mnt/lv2

  a. xfs

  [root@server0 ~]# xfs_growfs /dev/vg1/lv1

  b. ext2/3/4

  [root@server0 ~]# resize2fs /dev/vg1/lv2

  [root@server0 ~]# df -Th

  Filesystem Type Size Used Avail Use% Mounted on

  /dev/mapper/vg1-lv1 xfs 765M 67M 698M 9% /mnt/lv1

  /dev/mapper/vg1-lv2 ext4 488M 32M 429M 7% /mnt/lv2

  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  1.创建pv

  [root@localhost ~]# pvcreate /dev/sda5 /dev/sda6

  [root@localhost ~]# pvdisplay

  [root@localhost ~]# pvs

  2.创建vg

  [root@localhost ~]# vgcreate vg0 /dev/sda5 /dev/sda6

  [root@localhost ~]# vgdisplay

  [root@localhost ~]# vgs

  3.创建lv

  [root@localhost ~]# lvcreate -L 250M -n /dev/vg0/lv0 vg0

  [root@localhost ~]# lvdisplay

  [root@localhost ~]# lvs

  注意:

  pv不能跨越vg

  lv不能跨越vg

  系统中可以创建多个vg

  vg中可以创建多个lv

  删除lvm

  1.umount /dev/vg0/lv0

  2.[root@localhost ~]# lvremove /dev/vg0/lv0

  3.[root@localhost ~]# vgremove vg0

  4.[root@localhost ~]# pvremove /dev/sda{5,6,8}

  企业中的应用 如果根分区满了 怎么做??

  df -h 查看

  pvcreate /dev/sdb

  vgs

  vgextend centos /dev/sdb

  lvscan

  lvextend -L +5G /dev/centos/root

  df -T

  xfs_growfs /dev/centos/root

  df -Th

  lvextend -L +5G /dev/centos/root

  xfs_growfs /dev/centos/root

  df -h

  准备3块硬盘 可不分区 思路---PV----VG---LV

  lsblk

  ##创建PV

  pvcreate /dev/sdb

  ##查看当前PV

  pvscan

  pvs

  vgcreate datavg /dev/sdb (datavg是起的名字)

  vgscan

  pvscan ##得到回显 pv/dev/sdb 加入到了VG datevg 容量XXfree

  #创建LV

  lvcreate -L 200M -n lv1 datavg -L(指定lv的大小) 指定为200m lv1为起的名字 从datevg里创建

  lvcreate -L 300M -n lv2 datavg

  lvscan ## 得到回显 /dev/datevg/lv1 200m

  /dev/datevg/lv2 300m

  这时候看lsblk 去看看/dev/sdb????

  ##格式化,创建文件系统挂载

  mkfs.xfs /dev/datevg/lv1

  mkfs.ext4 /dev/datevg/lv2

  mkdir /mnt/lv1 /mnt/lv2

  挂载

  mount /dev/datevg/lv1 /mnt/lv1

  mount /dev/datevg/lv2 /mnt/lv2

  mount -a

  df -h (df-Th) 加上TYPE 类型

  LVM完成

  #########################################################

  扩大VG

  vgs

  pvcreate /dev/sdc 先变成PV

  vgextend datevg /dev/sdc 查看pvscan

  vgs free变大 实验成功

  继续扩容

  pvcreate /dev/sdd

  vgextend datevg /dev/sdd

  继续查看 VFree 继续变大

  ###############################################################

  减小VG 数据迁移 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  pvs 查看

  pvmove /dev/sdb /dev/sdc 将sdb数据仍到sdc

  vgreduce datevg /dev/sdb

  pvscan

  查看变化。数据迁移完成

  注意:

  pv不能跨越vg

  lv不能跨越vg

  系统中可以创建多个vg

  vg中可以创建多个lv

上一篇:云计算编程 RAID

下一篇:Java编程中的Docker

QQ技术交流群

千锋云计算官方①群
685222552

加入群聊

用户登录

手机号:

密码:

图形验证码:

点击切换

用户注册

手机号:

登陆密码:

图形验证码:

点击切换

短信验证码:

获取验证码

忘记密码

1安全验证

2重置密码

手机号:

图形验证码:

短信验证码:

获取验证码

忘记密码

1安全验证

2重置密码

新密码:

确认新密码:

获取课程

添加小千老师微信,获取课程信息

如何获取课程?

一、需拥有此本教材

如没有,可点击下方入口购买当当购买入口京东购买入口

二、添加小千老师,发送拥有凭证,解锁课程资源

1.购买该教材的订单信息
2.拥有的实体书信息等

更换手机号

新手机号:

图形验证码:

短信验证码:

获取验证码