9月27日任务

lvm讲解(上)(中)(下)

优点:方便扩容和缩容磁盘空间  局限性:磁盘使用lvm文件系统发生损坏,数据找不到,恢复数据——硬盘划分物理分区——物理分区基础上划分了lvm(复杂结构,软件),恢复很难

be8e9e03cc331f62e47d38e7dd751ac9693.jpg

解读:两块硬盘,A上划分两个物理卷(磁盘分区形成了物理卷),B上划分一个物理卷,物理卷基础上组成卷组(物理卷的集合),卷组中可以是一个物理卷也可以是多个物理卷组成,在卷组的基础上划分出来了逻辑卷,逻辑卷基础上格式化,并且挂载到系统中使用

步骤:创建物理分区 ——变成物理卷——物理卷形成卷组——卷组划分成逻辑卷——格式化并且挂载

 

第一步磁盘分区

实验:

步骤

fdisk /dev/sdb 

 n 创建三个新分区,分别1G 

 t 改变分区类型为8e(分区类型改为lvm)

 

 

创建三个分区,分别1G

[root@ys-210 ~]# fdisk /dev/sdb

欢迎使用 fdisk (util-linux 2.23.2)。

 

更改将停留在内存中,直到您决定将更改写入磁盘。

使用写入命令前请三思。

 

Device does not contain a recognized partition table

使用磁盘标识符 0x5ca940cd 创建新的 DOS 磁盘标签。

 

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

 

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0x5ca940cd

 

   设备 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):

起始 扇区 (2048-20971519,默认为 2048):

将使用默认值 2048

Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+1G

分区 1 已设置为 Linux 类型,大小设为 1 GiB

 

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

Partition type:

   p   primary (1 primary, 0 extended, 3 free)

   e   extended

Select (default p): p

分区号 (2-4,默认 2):

起始 扇区 (2099200-20971519,默认为 2099200):

将使用默认值 2099200

Last 扇区, +扇区 or +size{K,M,G} (2099200-20971519,默认为 20971519):+1G

分区 2 已设置为 Linux 类型,大小设为 1 GiB

 

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

Partition type:

   p   primary (2 primary, 0 extended, 2 free)

   e   extended

Select (default p): p

分区号 (3,4,默认 3):

起始 扇区 (4196352-20971519,默认为 4196352):

将使用默认值 4196352

Last 扇区, +扇区 or +size{K,M,G} (4196352-20971519,默认为 20971519):+1G

分区 3 已设置为 Linux 类型,大小设为 1 GiB

 

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

 

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0x5ca940cd

 

   设备 Boot      Start         End      Blocks   Id  System

/dev/sdb1            2048     2099199     1048576   83  Linux

/dev/sdb2         2099200     4196351     1048576   83  Linux

/dev/sdb3         4196352     6293503     1048576   83  Linux

 

注:id为83普通分区,需要改为lvm

 

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

分区号 (1-3,默认 3):1

Hex 代码(输入 L 列出所有代码):8e

已将分区“Linux”的类型更改为“Linux LVM”

 

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

分区号 (1-3,默认 3):2

Hex 代码(输入 L 列出所有代码):8e

已将分区“Linux”的类型更改为“Linux LVM”

 

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

分区号 (1-3,默认 3):3

Hex 代码(输入 L 列出所有代码):8e

已将分区“Linux”的类型更改为“Linux LVM”

 

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

 

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0x5ca940cd

 

   设备 Boot      Start         End      Blocks   Id  System

/dev/sdb1            2048     2099199     1048576   8e  Linux LVM

/dev/sdb2         2099200     4196351     1048576   8e  Linux LVM

/dev/sdb3         4196352     6293503     1048576   8e  Linux LVM

 

命令(输入 m 获取帮助):w   (记得保存

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

正在同步磁盘。

 

[root@ys-210 ~]# fdisk -l

 

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0x5ca940cd

 

   设备 Boot      Start         End      Blocks   Id  System

/dev/sdb1            2048     2099199     1048576   8e  Linux LVM

/dev/sdb2         2099200     4196351     1048576   8e  Linux LVM

/dev/sdb3         4196352     6293503     1048576   8e  Linux LVM

 

磁盘 /dev/sda:85.9 GB, 85899345920 字节,167772160 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0x00037d26

 

   设备 Boot      Start         End      Blocks   Id  System

/dev/sda1   *        2048      411647      204800   83  Linux

/dev/sda2          411648    17188863     8388608   82  Linux swap / Solaris

/dev/sda3        17188864   167772159    75291648   83  Linux

 

第二步 准备物理卷

 

步骤:

pvcreate /dev/sdb1 

pvcreate /dev/sdb2 

 pvcreate /dev/sdb3 

 pvdisplay  或者 pvs 列出当前的物理卷 

 pvremove /dev/sdb3 删除物理卷

 

创建物理卷命令pvcreate

安装命令pvcreate    

安装包忘记了方法:根据命令去搜索

[root@ys-210 ~]# yum provides "/*/pvcreate"  (注:/表示根,*表示通配,意思是命令的绝对路径)

已加载插件:fastestmirror

Loading mirror speeds from cached hostfile

* base: mirrors.shu.edu.cn

* extras: mirrors.shu.edu.cn

* updates: mirrors.cn99.com

base/7/x86_64/filelists_db                                                                                  | 6.9 MB  00:00:00     

extras/7/x86_64/filelists_db                                                                                | 596 kB  00:00:00     

updates/7/x86_64/filelists_db                                                                               | 2.9 MB  00:00:00     

1:bash-completion-2.1-6.el7.noarch : Programmable completion for Bash

源    :base

匹配来源:

文件名    :/usr/share/bash-completion/completions/pvcreate

 

7:lvm2-2.02.177-4.el7.x86_64 : Userland logical volume management tools

源    :base

匹配来源:

文件名    :/usr/sbin/pvcreate

 

安装的包是:[root@ys-210 ~]# yum install -y lvm2

 

创建物理卷

当创建完分区不生成文件时:[root@ys-210 ~]# partprobe

[root@ys-210 ~]# pvcreate /dev/sdb1

WARNING: ext4 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: y

  Wiping ext4 signature on /dev/sdb1.

  Physical volume "/dev/sdb1" successfully created.

[root@ys-210 ~]# pvcreate /dev/sdb2

  Physical volume "/dev/sdb2" successfully created.

[root@ys-210 ~]# pvcreate /dev/sdb3

  Physical volume "/dev/sdb3" successfully created.

 

查看物理卷

[root@ys-210 ~]# pvdisplay

  "/dev/sdb2" is a new physical volume of "1.00 GiB"

  --- NEW Physical volume ---

  PV Name               /dev/sdb2

  VG Name               

  PV Size               1.00 GiB

  Allocatable           NO

  PE Size               0   

  Total PE              0

  Free PE               0

  Allocated PE          0

  PV UUID               pMlwL7-EGNH-S0zm-cdKE-iEYd-kOrA-s4sZCj

   

  "/dev/sdb1" is a new physical volume of "1.00 GiB"

  --- NEW Physical volume ---

  PV Name               /dev/sdb1

  VG Name               

  PV Size               1.00 GiB

  Allocatable           NO

  PE Size               0   

  Total PE              0

  Free PE               0

  Allocated PE          0

  PV UUID               e1YdSB-gfcX-ohfa-oSJp-9db1-NwPj-u4spfd

   

  "/dev/sdb3" is a new physical volume of "1.00 GiB"

  --- NEW Physical volume ---

  PV Name               /dev/sdb3

  VG Name               

  PV Size               1.00 GiB

  Allocatable           NO

  PE Size               0   

  Total PE              0

  Free PE               0

  Allocated PE          0

  PV UUID               Vtg2Wm-Nud3-eCwD-exii-EELG-WNS6-tlX7PS

   

[root@ys-210 ~]# pvs

  PV         VG Fmt  Attr PSize PFree

  /dev/sdb1     lvm2 ---  1.00g 1.00g

  /dev/sdb2     lvm2 ---  1.00g 1.00g

  /dev/sdb3     lvm2 ---  1.00g 1.00g

 

删除物理卷  命令pvremove /dev/sdb3

 

第三步 创建物理卷组

步骤:

vgcreate vg1(卷组名字) /dev/sdb1 /dev/sdb2 /dev/sdb3 

 vgdisplay 或者vgs列出卷组 

 vgremove vg1 删除物理卷

 

 

创建物理卷组

两个物理卷组成卷组

[root@ys-210 ~]# vgcreate vg1 /dev/sdb1 /dev/sdb2

  Volume group "vg1" successfully created

 

查看卷组信息

[root@ys-210 ~]# vgdisplay

  --- Volume group ---

  VG Name               vg1

  System ID             

  Format                lvm2

  Metadata Areas        2

  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                2

  Act PV                2

  VG Size               1.99 GiB

  PE Size               4.00 MiB

  Total PE              510

  Alloc PE / Size       0 / 0   

  Free  PE / Size       510 / 1.99 GiB

  VG UUID               Gmkv3z-aueX-LsEb-Ls4N-Obqa-46Op-o2C91J

 

[root@ys-210 ~]# vgs

  VG  #PV #LV #SN Attr   VSize VFree

  vg1   2   0   0 wz--n- 1.99g 1.99g

 

注:删除物理卷命令vgremove vg1

 

第四步 创建逻辑卷——格式化——挂载

步骤:

lvcreate -L 200M -n lv1 vg1 

 lvdisplay 列出逻辑卷 

 格式化mkfs.xfs /dev/vg1/lv1,再挂载 

 lvremove /dev/vg1/lv1 删除逻辑卷

 

创建逻辑卷

-L指定大小  -n指定名称

[root@ys-210 ~]# lvcreate -L 100M -n lv1 vg1

  Logical volume "lv1" created.

 

格式化(格式:xfs(此格式在后期扩容缩容会有影响)/ext4/ext3/ext2)

[root@ys-210 ~]# mkfs.ext4 /dev/vg1/lv1

mke2fs 1.42.9 (28-Dec-2013)

文件系统标签=

OS type: Linux

块大小=1024 (log=0)

分块大小=1024 (log=0)

Stride=0 blocks, Stripe width=0 blocks

25688 inodes, 102400 blocks

5120 blocks (5.00%) reserved for the super user

第一个数据块=1

Maximum filesystem blocks=33685504

13 block groups

8192 blocks per group, 8192 fragments per group

1976 inodes per group

Superblock backups stored on blocks:

    8193, 24577, 40961, 57345, 73729

 

Allocating group tables: 完成                            

正在写入inode表: 完成                            

Creating journal (4096 blocks): 完成

Writing superblocks and filesystem accounting information: 完成

 

挂载

[root@ys-210 ~]# mount /dev/vg1/lv1 /mnt/

[root@ys-210 ~]# df -h

文件系统             容量  已用  可用 已用% 挂载点

/dev/sda3             72G  1.3G   71G    2% /

devtmpfs             1.9G     0  1.9G    0% /dev

tmpfs                1.9G     0  1.9G    0% /dev/shm

tmpfs                1.9G  8.5M  1.9G    1% /run

tmpfs                1.9G     0  1.9G    0% /sys/fs/cgroup

/dev/sda1            197M   32M  166M   16% /tmp

/dev/mapper/vg1-lv1   93M  1.6M   85M    2% /mnt

tmpfs                380M     0  380M    0% /run/user/0

99a7058ec6e23ebbf4727a2e4aacb4fbbc8.jpg

指向同一文件

7f9e9ccbcf6603684b9b2b8bb8e6d9e7345.jpg

 

测试:扩容缩容是否影响数据

cadb21fc9773c55a1f8e13a73ba8df23c0b.jpg

 

扩容逻辑卷

lvresize -L 300M  /dev/vg1/lv1  重新设置卷大小 

 e2fsck -f /dev/vg1/lv1 检查磁盘错误  (ext4执行) 

 resize2fs /dev/vg1/lv1 更新逻辑卷信息(ext4执行) 

 xfs_growfs /dev/vg1/lv1  xfs文件系统需要执行

 

针对ext4格式扩容

-L指定新的大小  扩容命令lvresize

首先挂载

[root@ys-210 ~]# umount /mnt/

然后扩容

[root@ys-210 ~]# lvresize -L 500M /dev/vg1/lv1

  Size of logical volume vg1/lv1 changed from 100.00 MiB (25 extents) to 500.00 MiB (125 extents).

  Logical volume vg1/lv1 successfully resized.

检查磁盘错误

[root@ys-210 ~]# e2fsck -f /dev/vg1/lv1

e2fsck 1.42.9 (28-Dec-2013)

第一步: 检查inode,块,和大小

第二步: 检查目录结构

第3步: 检查目录连接性

Pass 4: Checking reference counts

第5步: 检查簇概要信息

/dev/vg1/lv1: 13/25688 files (7.7% non-contiguous), 8898/102400 blocks

更新逻辑卷信息

挂载

[root@ys-210 ~]# !mount

mount /dev/vg1/lv1 /mnt/

 

更新

[root@ys-210 ~]# resize2fs /dev/vg1/lv1

resize2fs 1.42.9 (28-Dec-2013)

Filesystem at /dev/vg1/lv1 is mounted on /mnt; on-line resizing required

old_desc_blocks = 1, new_desc_blocks = 4

The filesystem on /dev/vg1/lv1 is now 512000 blocks long.

 

[root@ys-210 ~]# df -h

文件系统             容量  已用  可用 已用% 挂载点

/dev/sda3             72G  1.3G   71G    2% /

devtmpfs             1.9G     0  1.9G    0% /dev

tmpfs                1.9G     0  1.9G    0% /dev/shm

tmpfs                1.9G  8.5M  1.9G    1% /run

tmpfs                1.9G     0  1.9G    0% /sys/fs/cgroup

/dev/sda1            197M   32M  166M   16% /tmp

/dev/mapper/vg1-lv1  481M  2.3M  456M    1% /mnt

tmpfs                380M     0  380M    0% /run/user/0

6e2eaa48925730ab0d1a73da919725d2454.jpg

查看原数据是否存在

19e50632648fa7ccef10deb053809dbf596.jpg

 

扩容数据不受影响

 

针对xfs格式扩容

创建xfs扩容先前条件:

挂载xfs格式的逻辑卷

卸载

[root@ys-210 ~]# umount /mnt/

格式化

[root@ys-210 ~]# mkfs.xfs -f /dev/vg1/lv1

b265a283cc57bdb2b8c9069a98e293355b9.jpg

挂载

[root@ys-210 ~]# !mount

mount /dev/vg1/lv1 /mnt/

创建文件(测试后期扩容是否数据丢失

875b0bd2d0672dfc68a72ff981d4f259b6c.jpg

[root@ys-210 ~]# lvs

  LV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

  lv1  vg1 -wi-ao---- 300.00m

 

 

xfs扩容步骤

 

扩容(不需要卸载)

[root@ys-210 ~]# lvresize -L 700M /dev/vg1/lv1

  Size of logical volume vg1/lv1 changed from 600.00 MiB (150 extents) to 700.00 MiB (175 extents).

  Logical volume vg1/lv1 successfully resized.

[root@ys-210 ~]# lvs

  LV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

  lv1  vg1 -wi-a----- 700.00m  

 

刷新(文件系统执行)

[[root@ys-210 ~]#  xfs_growfs /dev/vg1/lv1

12d26f2f091522c3dd100400a14ed8e0397.jpg

 

 

缩减逻辑卷(xfs不支持)

先umount 

 e2fsck -f /dev/vg1/lv1 检查磁盘错误(ext) 

 resize2fs /dev/vg1/lv1 100M 更新逻辑卷信息(ext) 

 lvresize -L 100M  /dev/vg1/lv1  重新设置卷大小

 

 

挂载

[root@ys-210 ~]# umount /mnt/

检查磁盘错误

[root@ys-210 ~]# e2fsck -f /dev/vg1/lv1

e2fsck 1.42.9 (28-Dec-2013)

第一步: 检查inode,块,和大小

第二步: 检查目录结构

第3步: 检查目录连接性

Pass 4: Checking reference counts

第5步: 检查簇概要信息

/dev/vg1/lv1: 13/124488 files (7.7% non-contiguous), 22122/512000 blocks

更新逻辑卷信息缩至指定大小

[root@ys-210 ~]# resize2fs /dev/vg1/lv1 300M

resize2fs 1.42.9 (28-Dec-2013)

Resizing the filesystem on /dev/vg1/lv1 to 307200 (1k) blocks.

The filesystem on /dev/vg1/lv1 is now 307200 blocks long.

重新设置卷大小

[root@ys-210 ~]#  lvresize -L 300M  /dev/vg1/lv1

  WARNING: Reducing active logical volume to 300.00 MiB.

  THIS MAY DESTROY YOUR DATA (filesystem etc.)

Do you really want to reduce vg1/lv1? [y/n]: y  (此时有可能会损坏原始数据

  Size of logical volume vg1/lv1 changed from 500.00 MiB (125 extents) to 300.00 MiB (75 extents).

  Logical volume vg1/lv1 successfully resized.

[root@ys-210 ~]# lvdisplay

  --- Logical volume ---

  LV Path                /dev/vg1/lv1

  LV Name                lv1

  VG Name                vg1

  LV UUID                MO1D9a-EwKB-ZrGB-c9T4-lMoD-phcD-aerT5I

  LV Write Access        read/write

  LV Creation host, time ys-210, 2018-09-27 13:11:40 +0800

  LV Status              available

  # open                 0

  LV Size                300.00 MiB

  Current LE             75

  Segments               1

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     8192

  Block device           253:0

[root@ys-210 ~]# lvs

  LV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

  lv1  vg1 -wi-a----- 300.00m

挂载

[root@ys-210 ~]# !mount

mount /dev/vg1/lv1 /mnt/

数据不会丢失,缩容只要不缩到原始数据存储的大小就没问题

[root@ys-210 ~]# ls /mnt/

1212.txt  hkashdkashdkas  lost+found

 

扩容卷组(当逻辑卷空间耗完卷组时就要扩容卷组)

[root@ys-210 ~]# vgs

  VG  #PV #LV #SN Attr   VSize VFree

  vg1   2   1   0 wz--n- 1.99g <1.31g

sdb1和sdb2是组成卷组

sdb3是空闲的(用来扩容卷组)

 

步骤:

前两个步骤形成了sdb3

fdisk /dev/sdb  新增/dev/sdb5(逻辑分区8e)  2G 

 pvcreate /dev/sdb5 

后两个步骤扩容卷组及扩容逻辑卷

 vgextend vg1 /dev/sdb5 

 lvresize -L 100M  /dev/vg1/lv1  重新设置卷大小

 

 

使用sdb3扩容卷组

[root@ys-210 ~]# vgextend vg1 /dev/sdb3

  Volume group "vg1" successfully extended

12d26f2f091522c3dd100400a14ed8e0397.jpg

4.13 磁盘故障小案例

因为另外一块磁盘不存在,但是配置文件/etc/fstab中又有挂载的配置,挂载出问题就导致这样的故障。(磁盘挂载出现问题,不能正常挂载到挂载点)

出现以下画面,无法进入系统:

a5d25b7d951afe04e7a4dd231dac01a2808.jpg

第一步:输入root密码

进入登录界面:

4592e62c38686adf645b66bffd6eb7be0d2.jpg

 

第二步:编辑vi /etc /fstab

删除此行

6ef0e1798783815cffe874f0b6128006790.jpg

第三步 重启reboot恢复正常

转载于:https://my.oschina.net/u/3803396/blog/2209425

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值