linux中lv的详细创建流程【化分区-pv-vg-lv创建整套流程】,centos中lv脚本创建vg-pv-lv,-bash: lvs: command not found处理方法

lv的创建流程说明

不要使用普通的标准分区装系统,而是要使用lv的方式, 因为lv的空间是可变的(注:/boot分区是不能放在lv中的)。

  • 物理磁盘是不能直接使用逻辑卷的,需要把物理磁盘转为pv,在创建卷组vg,最后才划为lv, 流程就是 pv→vg→lv
    • /dev/sd*是硬盘
    • pv是物理卷
    • vg是卷组
    • lv是逻辑卷

-bash: lvs: command not found处理方法

  • 最小化安装的可能就没有lv命令,图形化安装的不存在这种情况。
[root@xz-ras-data ~]# pvs
-bash: pvs: command not found
[root@xz-ras-data ~]# lvs
-bash: lvs: command not found
[root@xz-ras-data ~]# 
  • 处理方法,安装lvm2即可
[root@xz-ras-data ~]# yum -y install lvm2
。。。
  Verifying  : 7:device-mapper-event-libs-1.02.149-8.el7.x86_64                                                                                                                                                                        8/10 
  Verifying  : 7:device-mapper-1.02.140-8.el7.x86_64                                                                                                                                                                                   9/10 
  Verifying  : 7:device-mapper-libs-1.02.140-8.el7.x86_64                                                                                                                                                                             10/10 

Installed:
  lvm2.x86_64 7:2.02.180-8.el7                                                                                                                                                                                                              

Dependency Installed:
  device-mapper-event.x86_64 7:1.02.149-8.el7      device-mapper-event-libs.x86_64 7:1.02.149-8.el7      device-mapper-persistent-data.x86_64 0:0.7.3-3.el7      libaio.x86_64 0:0.3.109-13.el7      lvm2-libs.x86_64 7:2.02.180-8.el7     

Dependency Updated:
  device-mapper.x86_64 7:1.02.149-8.el7                                                                              device-mapper-libs.x86_64 7:1.02.149-8.el7                                                                             

Complete!

lv的创建、删除、使用及增减容量

硬盘分区设置或查看

  • 查看分区格式:fdisk -l 设备名
  • 创建之前需要需要确定磁盘格式为lvm,如果不是lvm去转换一下格式,方法提醒:fdisk 设备名
    注:分区完以后记得按t进行格式转换【lvm参数是8e
    在这里插入图片描述
  • 如下,我化一个1.5t的空间为lvm格式
[root@xz-ras-data ~]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p

Disk /dev/vdb: 1649.3 GB, 1649267441664 bytes, 3221225472 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xfcb78ee4

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048    67110911    33554432   82  Linux swap / Solaris

Command (m for help): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
Partition number (2-4, default 2): 
First sector (67110912-3221225471, default 67110912): 
Using default value 67110912
Last sector, +sectors or +size{K,M,G} (67110912-3221225471, default 3221225471): 
Using default value 3221225471
Partition 2 of type Linux and of size 1.5 TiB is set

Command (m for help): e
e: unknown command
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help): t
Partition number (1,2, default 2): 2
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): p

Disk /dev/vdb: 1649.3 GB, 1649267441664 bytes, 3221225472 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xfcb78ee4

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048    67110911    33554432   82  Linux swap / Solaris
/dev/vdb2        67110912  3221225471  1577057280   8e  Linux LVM

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@xz-ras-data ~]# partprobe /dev/vdb
[root@xz-ras-data ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  478K  0 rom  
vda    253:0    0  300G  0 disk 
└─vda1 253:1    0  300G  0 part /
vdb    253:16   0  1.5T  0 disk 
├─vdb1 253:17   0   32G  0 part [SWAP]
└─vdb2 253:18   0  1.5T  0 part 
[root@xz-ras-data ~]#

pv操作

创建pv

pvscan \ pvs:查看系统中是现有pv
pvcreate 设备名 : 添加pv
在这里插入图片描述

[root@xz-ras-data ~]# pvscan 
  No matching physical volumes found
[root@xz-ras-data ~]# pvcreate /dev/vd^C
[root@xz-ras-data ~]# 
[root@xz-ras-data ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  478K  0 rom  
vda    253:0    0  300G  0 disk 
└─vda1 253:1    0  300G  0 part /
vdb    253:16   0  1.5T  0 disk 
├─vdb1 253:17   0   32G  0 part [SWAP]
└─vdb2 253:18   0  1.5T  0 part 
[root@xz-ras-data ~]# pvcreate /dev/vdb2
  Physical volume "/dev/vdb2" successfully created.
[root@xz-ras-data ~]# pvscan
  PV /dev/vdb2                      lvm2 [<1.47 TiB]
  Total: 1 [<1.47 TiB] / in use: 0 [0   ] / in no VG: 1 [<1.47 TiB]
[root@xz-ras-data ~]# 

删除pv

pvremove 设备名 : 删除pv
在这里插入图片描述

vg操作

vg详细信息查看

vgdisplay 卷名:查看卷组vg详细,不加卷名直接vgdisplay就是查看所有卷组
在这里插入图片描述

创建vg

  • vgscan \ vgs:查看vg卷组
  • vgcreate 卷组名 设备名 :创建卷(vm)组
    在这里插入图片描述
  • 默认卷大小是4m,就是说存储必须是4的整数倍,如果存了5M 实际占用空间是8M。
    默认卷是可以更改的,但只能在创建vg的时候定义,创建成功以后便不能更改,定义卷大小参数-s ,如 定义一个8m的卷大小:vgcreate -s 8 vg0 /dev/sdb9
[root@xz-ras-data ~]# vgs
[root@xz-ras-data ~]# vgcreate vgdata /dev/vdb2
  Volume group "vgdata" successfully created
[root@xz-ras-data ~]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree 
  vgdata   1   0   0 wz--n- <1.47t <1.47t
[root@xz-ras-data ~]# 

删除vg

  • 删除vg:vgremove vgname
[root@xz-pms-web-2 ~]# vgremove vgdata
  Volume group "vgdata" successfully removed
[root@xz-pms-web-2 ~]#
  • vgreduce 卷组名 设备名:剔除卷组vg
    在这里插入图片描述

vg重命名

vgrename 现vg名 新vm名:更改vg名
在这里插入图片描述

新增vg容量【vg扩容】

  • 注意:新盘划分区的时候 需要t转换为lvm格式(8e) :fdisk 设备名
  • vg名查看:vgs \ vgdisplay
    在这里插入图片描述
  • 新硬盘分区查看:fdisk -l
    在这里插入图片描述
  • 后期增加vg大小:vgextend vg名 磁盘设备名
    • 如这里的vg名(vgdisplay可以查看)是cl
    • 新划分区名是:/dev/sda3
    • 则:vgextend cl /dev/sda3 把容量划到vg中:
      在这里插入图片描述
    • 入vgdisplay :就可以看到vg中新增后的总容量了
      在这里插入图片描述
    • 注:如果添加成功以后fdisk -l 可以看到盘,添加找不到新设备名 这是系统bug,重启即可,也可以等待几个小时等待系统后台数据库自动更新也可。
      在这里插入图片描述
  • 新增完以后就可以正常划分新的lv使用了:创建lv-格式化lv-挂载lv
    在这里插入图片描述
  • 【很少遇到,了解一下留个印象】在这种系统不会自动更新磁盘信息的情况下:如果我们新建一个主分区 格式化 后可以直接使用,但挂载信息可能会和fdisk中创建的不符,
    在这里插入图片描述在这里插入图片描述
    • 如果重启后,信息就会更新,但这时就会发现 该硬盘分区不能挂载了,提示不能读取超级快:
      在这里插入图片描述
      在这里插入图片描述
    • 这种情况是因为 格式化硬盘时读取的值是之前112G的状态,重启以后该信息不见了,所以导致无法正常使用,需要重新格式化,但直接格式化会失败,所以需要加个-f,强制格式化:
      在这里插入图片描述
      当前系统是centos7,这些问题是系统bug的原因,后面7.6上并不会出现这种问题,感谢 西藏于总 耐心分析和无私分享几十年的经验 给我解决了上面的疑问。

lv操作

创建lv

  • lvscan \ lvs:查看lv逻辑卷

  • lv创建格式:lvcreate -L 大小(M,G) -n lv名称 卷名(vgs查看) :就是在vg卷中提取指定大小空间创建为lv(大小需要为pe size (默认卷)的整数倍 如果不是,会自动增加到pesize的整数倍,如,4m的默认卷,创建了98M,会自动分配为100M):
    在这里插入图片描述

  • lvcreate -l(L) 默认卷数量 -n 卷名 vg名:根据定义的默认卷数量自动分配空间,如默认卷是4m的情况下,分配25个默认卷,则是100M的空间:lvcreate -l 25 -n lv1 vg0
    在这里插入图片描述

  • lvcreate -l 数字%free -n lv名 卷名:根据百分比自动分配剩余空间,如分配剩余空间的30%:lvcreate -l 30%free -n lv2 vg0
    在这里插入图片描述

  • 方法就是上面的,可以创建很多个pv,如我这有个分区需求【并且后面可以动态调整这些空间,所以就只能这么做】
    在这里插入图片描述

[root@xz-ras-data ~]# lvs
[root@xz-ras-data ~]# lvcreate -L 86G -n lv_ora vgdata
  Logical volume "lv_ora" created.
[root@xz-ras-data ~]# lvs
  LV     VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_ora vgdata -wi-a----- 86.00g                                                    
[root@xz-ras-data ~]# lvcreate -L 150G -n lv_boss_file vgdata
  Logical volume "lv_boss_file" created.
[root@xz-ras-data ~]# lvcreate -L 1000G -n lv_data vgdata
  Logical volume "lv_data" created.
[root@xz-ras-data ~]# lvcreate -L 140G -n lv_arch vgdata
  Logical volume "lv_arch" created.
[root@xz-ras-data ~]# lvcreate -L 120G -n lv_bank_files vgdata
  Logical volume "lv_bank_files" created.
[root@xz-ras-data ~]# 
[root@xz-ras-data ~]# lvs
  LV            VG     Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_arch       vgdata -wi-a-----  140.00g                                                    
  lv_bank_files vgdata -wi-a-----  120.00g                                                    
  lv_boss_file  vgdata -wi-a-----  150.00g                                                    
  lv_data       vgdata -wi-a----- 1000.00g                                                    
  lv_ora        vgdata -wi-a-----   86.00g                                                    
[root@xz-ras-data ~]# 

删除lv

删除lv:lvremove /dev/卷名/lv名(lvscan可以查看),提示中输入y确定删除即可(如果不要提示,加上参数-f即可:lvremove -f /dev/*/*
在这里插入图片描述

使用lv

  • lv创建完成以后,就可以直接格式化后使用了,lvdisplay 可以查看lv详细路径

  • mkfs.** lv设备名【mkfs.tab一下,就会出现很多很多格式,根据需要的格式选择就行】,如:把lv0格式化为xfs并挂在到根目录的123文件中:

    • mkfs.xfs /dev/vg0/lv0
    • mkdir /123
    • mount /dev/vo0/lv0 /123
      在这里插入图片描述
  • 如我这格式化上面创建lv中的示例

[root@xz-ras-data ~]# lvs
  LV            VG     Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_arch       vgdata -wi-a-----  140.00g                                                    
  lv_bank_files vgdata -wi-a-----  120.00g                                                    
  lv_boss_file  vgdata -wi-a-----  150.00g                                                    
  lv_data       vgdata -wi-a----- 1000.00g                                                    
  lv_ora        vgdata -wi-a-----   86.00g                                                    
[root@xz-ras-data ~]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/vgdata/lv_ora
  LV Name                lv_ora
  VG Name                vgdata
  LV UUID                KPhJPH-gFCr-ryB1-6NT0-d7M7-I3Ie-I99Sgy
  LV Write Access        read/write
  LV Creation host, time xz-ras-data.novalocal, 2022-06-22 09:24:33 +0000
  LV Status              available
  # open                 0
  LV Size                86.00 GiB
  Current LE             22016
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           252:0
   
  --- Logical volume ---
  LV Path                /dev/vgdata/lv_boss_file
  LV Name                lv_boss_file
  VG Name                vgdata
  LV UUID                NQtu3d-hES9-vGPu-NIJb-XybO-1K9S-tGDolQ
  LV Write Access        read/write
  LV Creation host, time xz-ras-data.novalocal, 2022-06-22 09:25:00 +0000
  LV Status              available
  # open                 0
  LV Size                150.00 GiB
  Current LE             38400
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           252:1
   
  --- Logical volume ---
  LV Path                /dev/vgdata/lv_data
  LV Name                lv_data
  VG Name                vgdata
  LV UUID                zgH6f8-Bxof-Cw9X-Ihlu-ePzf-o5DV-ewAmzn
  LV Write Access        read/write
  LV Creation host, time xz-ras-data.novalocal, 2022-06-22 09:25:14 +0000
  LV Status              available
  # open                 0
  LV Size                1000.00 GiB
  Current LE             256000
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           252:2
   
  --- Logical volume ---
  LV Path                /dev/vgdata/lv_arch
  LV Name                lv_arch
  VG Name                vgdata
  LV UUID                G5fcJ2-KMgf-GaCK-ltCk-QFNR-q3tx-pevt1B
  LV Write Access        read/write
  LV Creation host, time xz-ras-data.novalocal, 2022-06-22 09:25:32 +0000
  LV Status              available
  # open                 0
  LV Size                140.00 GiB
  Current LE             35840
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           252:3
   
  --- Logical volume ---
  LV Path                /dev/vgdata/lv_bank_files
  LV Name                lv_bank_files
  VG Name                vgdata
  LV UUID                n1jVOQ-7ToG-W1ML-B1uH-rcOz-chiR-TczjZH
  LV Write Access        read/write
  LV Creation host, time xz-ras-data.novalocal, 2022-06-22 09:25:47 +0000
  LV Status              available
  # open                 0
  LV Size                120.00 GiB
  Current LE             30720
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           252:4
   
[root@xz-ras-data ~]# 
[root@xz-ras-data ~]# mkfs.xfs /dev/vgdata/lv_ora
meta-data=/dev/vgdata/lv_ora     isize=512    agcount=4, agsize=5636096 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=22544384, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=11008, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@xz-ras-data ~]# mkfs.xfs /dev/vgdata/lv_boss_file
meta-data=/dev/vgdata/lv_boss_file isize=512    agcount=4, agsize=9830400 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=39321600, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=19200, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@xz-ras-data ~]# mkfs.xfs /dev/vgdata/lv_data
meta-data=/dev/vgdata/lv_data    isize=512    agcount=4, agsize=65536000 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=262144000, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=128000, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@xz-ras-data ~]# mkfs.xfs /dev/vgdata/lv_arch
meta-data=/dev/vgdata/lv_arch    isize=512    agcount=4, agsize=9175040 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=36700160, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=17920, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@xz-ras-data ~]# mkfs.xfs /dev/vgdata/lv_bank_files
meta-data=/dev/vgdata/lv_bank_files isize=512    agcount=4, agsize=7864320 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=31457280, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=15360, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@xz-ras-data ~]# 
[root@xz-ras-data ~]# lsblk
NAME                     MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0                       11:0    1  478K  0 rom  
vda                      253:0    0  300G  0 disk 
└─vda1                   253:1    0  300G  0 part /
vdb                      253:16   0  1.5T  0 disk 
├─vdb1                   253:17   0   32G  0 part [SWAP]
└─vdb2                   253:18   0  1.5T  0 part 
  ├─vgdata-lv_ora        252:0    0   86G  0 lvm  
  ├─vgdata-lv_boss_file  252:1    0  150G  0 lvm  
  ├─vgdata-lv_data       252:2    0 1000G  0 lvm  
  ├─vgdata-lv_arch       252:3    0  140G  0 lvm  
  └─vgdata-lv_bank_files 252:4    0  120G  0 lvm  
[root@xz-ras-data ~]# 

lv重命名

# 这个和vg不太一样,直接用lv名称会报错
[root@xz-ras-data ~]# lvrename lv_boss_file lv_boss_files
  Path required for Logical Volume "lv_boss_file".
  Please provide a valid volume group name
  Run `lvrename --help' for more information.
[root@xz-ras-data ~]# lvrename ^C_boss_file lv_boss_files
[root@xz-ras-data ~]# 

# 而是需要详细路径,lvdisplay可以查看
[root@xz-ras-data ~]# lvrename /dev/vgdata/lv_boss_file /dev/vgdata/lv_boss_files
  Renamed "lv_boss_file" to "lv_boss_files" in volume group "vgdata"
[root@xz-ras-data ~]# lvs
  LV            VG     Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_arch       vgdata -wi-a-----  140.00g                                                    
  lv_bank_files vgdata -wi-a-----  120.00g                                                    
  lv_boss_files vgdata -wi-a-----  150.00g                                                    
  lv_data       vgdata -wi-a----- 1000.00g                                                    
  lv_ora        vgdata -wi-a-----   86.00g                                                    
[root@xz-ras-data ~]# 
在这里插入代码片

增加使用中lv容量【扩容】

  • 首先要确认vg中有容量可以扩容
  • lvextend -L +大小 lv设备名:在原有大小上扩容制定大小,如给lv0扩容100M:
    lvextend -L +100M /dev/vg0/lv0
    在这里插入图片描述
xfs格式刷新
  • 虽然查看lv已经扩容成功的,但df -Th查看的时候 实际容量没有变化,因为还需要单独扩容文件:xfs格式是:
    xfs_growfs 文件名
    在这里插入图片描述
ext4格式刷新

扩容文件 ext4格式为:resize2fs 设备名
在这里插入图片描述

  • 总结一下:就是扩容需要扩容2个地方,第一个是lv(lvextend -L +大小 lv设备名),第二个是文件(sfs: sfs_growfs 文件名,exte:resize2fs lv设备全名)注:扩展lv的时候,是可以在线扩展的(就是不需要卸载的情况)

减少使用中lv容量【缩容】

  • 注:xfs文件系统是不支持缩小的!!!!!!
  • lv容量的减少必须按照以下4个步骤来做:
    • 要先卸载磁盘: umount
    • 磁盘完整性检查:fsck -f 设备名,如:fsck -f /dev/vg0/lv0
    • 缩小文件容量(ext4格式): resize2fs 设备名 大小(最终大小,而不是减掉的大小) ,如:resize2fs /dev/vg0/lv0 80M
    • 把多余的lv给缩小:lvreduce -L -容量 lv完整路径,如:
      lvreduce -L -220M /dev/vg0/lv0
      注:具体减多少容量,用总容量减去上一步中修改后的最终容量即可,如现在lv0是300M,修改为80M,则应减去220M。
      在这里插入图片描述

lv的快照

先在之前挂载的lv中创建一个50M大小的文件:dd if=/dev/zero of=/aa/file bs=1M count=50
快照语法:lvcreate -n 自定义名字 -L 大小(不能超过后面总共可用大小) -s /dev/卷组/lv名(需要备份的名称)
在这里插入图片描述
创建好快照以后,务必不要对快照格式化。 而且 创建好的快照是可以直接使用的,就是直接挂载到某一个文件中,访问到的内容和被做快照lv中内容是一模一样的:
在这里插入图片描述
快照虽然创建好了,但如果我们查看lv容量和挂载容量的时候,发现不一样,其实这是正常的,虽然容量不一样但并不影响通过快照挂载的文件访问被快照里面的内容,相当于快照中这个只是一个链接,访问快照中文件的时候,实际是映射到快照前文件的内容,所以大小虽然不一样,但访问的内容是一样的。删除快照中以前的内容之后,在从新创建相同文件名也不能看到以前文件的内容了(删除快照中内容并不会影响被快照中的文件),快照中后面创建的内容(新增的,改变的数据)是存放在快照内存中的(可用容量是创建快照的时候定义的),与被快照的内容也没有关系。

利用原始lv,来恢复快照里的东西

如果快照里面的内容被误删了,是可以通过原数据从新备份的,这种情况可以直接写进脚本中,跑下脚步即可完成自动重新做一份快照数据:
在这里插入图片描述
脚本内容 vi /aa.sh :
在这里插入图片描述

利用快照来恢复原始lv

lvconvert --merge 快照名称 :恢复该快照中的内容,但恢复后该快照会消失,如果还需要改快照,就需要重新就一次快照。 一般用于数据库 比如星期一到星期五每天做一次快照,如果不小心把星期三的数据删除了,那么恢复星期三保存的快照,该天的数据即可恢复。
在这里插入图片描述

lv脚本创建说明

下面只是简单说一下lv创建的流程,适合放在脚本中,需要看详细lv创建流程及原理的去看去这篇博客:磁盘管理以及lv的详细创建流程

手动创建lv流程回顾

新建一个分区;
​​在这里插入图片描述
在这里插入图片描述
选n:
在这里插入图片描述
类型p,主分区,将剩余所以空间都分配给新分区:
​​在这里插入图片描述
修改分区类型:t
​​在这里插入图片描述
刷新分区表:p

在这里插入图片描述
​​
保存分区表:w
​​在这里插入图片描述
读取分区列表:partprobe
在这里插入图片描述
把sda3转化为pv:
​​在这里插入图片描述
把sda3添加到centos vg组:
​​在这里插入图片描述在这里插入图片描述
​​
查看所有lv:
​​在这里插入图片描述
​​在这里插入图片描述
查看lv详细:
lvdisplay:
​​在这里插入图片描述
格式化lv:
​​在这里插入图片描述
Mount挂载磁盘到文件:

在这里插入图片描述
​​
编辑/etc/fstab文件,添加最后一条使文件系统自动挂载:
​​在这里插入图片描述

脚本自动创建lv方法

下面是一个自动创建pv,添加pv到vg,从vg中创建lv,以及格式化lv,并自动挂载到指定文件的脚本及命令解释:
脚本:用于很多服务器批量完成同样的操作, 服务器间直接ftp拷贝脚本运行就可以了

sudo su - //无须密码获取root权限
df -T //查看格式如xfs
fdisk -l //查看所有磁盘 一般新挂载磁盘是 sdb sdc sd…
pvs //查看pv大小

以下是脚本内容:

(pvcreate /dev/sdb;   #创建pv
vgcreate datavg /dev/sdb; #添加pv到vg中(datavg是vg名)
lvcreate -L 999.5G -n data datavg; # 创建999.5G大小的lv,data是lv名 datavg是vg名)
mkfs.xfs /dev/datavg/data; #格式化 新建lv  (/dev/datavg/data是路径——/dev(设备)/datavg(vg名)/data(lv名)
mkdir /data; #创建挂载目录 名为/data
echo "/dev/mapper/datavg-data /data                 xfs     defaults        0 0" >> /etc/fstab; #把挂载文件写进/etc/fstab (开机自动挂载)
mount -all ; #自动挂载写入/etc/fstab中的设备,与mount -a 同效果。
df -h;) #查看mount -all 是否执行成功,执行成功后df -h中会有写入/etc/fstab中信息,也就是说 该脚本执行执行成功。

系统重装后lsblk看不到外挂盘的lv分区信息&外挂盘重装后mount挂载方发

具体处理去这篇博客了:
mount: special device /dev/vgdata/lv_ora does not exist,centos系统LV status状态为Not avaliable问题排查及处理、

  • 6
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

҉人间无事人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值