文章目录

  • lv的创建流程说明
    • -bash: lvs: command not found处理方法
  • lv的创建、删除、使用及增减容量
    • 硬盘分区设置或查看
    • pv操作
      • 创建pv
      • 删除pv
    • vg操作
      • vg详细信息查看
      • 创建vg
      • 删除vg
      • vg重命名
      • 新增vg容量【vg扩容】
    • lv操作
      • 创建lv
      • 删除lv
      • 使用lv
      • lv重命名
      • 增加使用中lv容量【扩容】
        • xfs格式刷新
        • ext4格式刷新
      • 减少使用中lv容量【缩容】
    • lv的快照
      • 利用原始lv,来恢复快照里的东西
      • 利用快照来恢复原始lv
  • lv脚本创建说明
    • 手动创建lv流程回顾
    • 脚本自动创建lv方法
  • 系统重装后lsblk看不到外挂盘的lv分区信息&外挂盘重装后mount挂载方发

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): pDisk /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: 0xfcb78ee4Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048    67110911    33554432   82  Linux swap / SolarisCommand (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 setCommand (m for help): e
e: unknown command
Command actiona   toggle a bootable flagb   edit bsd disklabelc   toggle the dos compatibility flagd   delete a partitiong   create a new empty GPT partition tableG   create an IRIX (SGI) partition tablel   list known partition typesm   print this menun   add a new partitiono   create a new empty DOS partition tablep   print the partition tableq   quit without saving changess   create a new empty Sun disklabelt   change a partition's system idu   change display/entry unitsv   verify the partition tablew   write table to disk and exitx   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): pDisk /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: 0xfcb78ee4Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048    67110911    33554432   82  Linux swap / Solaris
/dev/vdb2        67110912  3221225471  1577057280   8e  Linux LVMCommand (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/vdb2Physical volume "/dev/vdb2" successfully created.
[root@xz-ras-data ~]# pvscanPV /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/vdb2Volume group "vgdata" successfully created
[root@xz-ras-data ~]# vgsVG     #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 vgdataVolume 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 vgdataLogical volume "lv_ora" created.
[root@xz-ras-data ~]# lvsLV     VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertlv_ora vgdata -wi-a----- 86.00g
[root@xz-ras-data ~]# lvcreate -L 150G -n lv_boss_file vgdataLogical volume "lv_boss_file" created.
[root@xz-ras-data ~]# lvcreate -L 1000G -n lv_data vgdataLogical volume "lv_data" created.
[root@xz-ras-data ~]# lvcreate -L 140G -n lv_arch vgdataLogical volume "lv_arch" created.
[root@xz-ras-data ~]# lvcreate -L 120G -n lv_bank_files vgdataLogical volume "lv_bank_files" created.
[root@xz-ras-data ~]#
[root@xz-ras-data ~]# lvsLV            VG     Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertlv_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 ~]# lvsLV            VG     Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertlv_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_oraLV Name                lv_oraVG Name                vgdataLV UUID                KPhJPH-gFCr-ryB1-6NT0-d7M7-I3Ie-I99SgyLV Write Access        read/writeLV Creation host, time xz-ras-data.novalocal, 2022-06-22 09:24:33 +0000LV Status              available# open                 0LV Size                86.00 GiBCurrent LE             22016Segments               1Allocation             inheritRead ahead sectors     auto- currently set to     8192Block device           252:0--- Logical volume ---LV Path                /dev/vgdata/lv_boss_fileLV Name                lv_boss_fileVG Name                vgdataLV UUID                NQtu3d-hES9-vGPu-NIJb-XybO-1K9S-tGDolQLV Write Access        read/writeLV Creation host, time xz-ras-data.novalocal, 2022-06-22 09:25:00 +0000LV Status              available# open                 0LV Size                150.00 GiBCurrent LE             38400Segments               1Allocation             inheritRead ahead sectors     auto- currently set to     8192Block device           252:1--- Logical volume ---LV Path                /dev/vgdata/lv_dataLV Name                lv_dataVG Name                vgdataLV UUID                zgH6f8-Bxof-Cw9X-Ihlu-ePzf-o5DV-ewAmznLV Write Access        read/writeLV Creation host, time xz-ras-data.novalocal, 2022-06-22 09:25:14 +0000LV Status              available# open                 0LV Size                1000.00 GiBCurrent LE             256000Segments               1Allocation             inheritRead ahead sectors     auto- currently set to     8192Block device           252:2--- Logical volume ---LV Path                /dev/vgdata/lv_archLV Name                lv_archVG Name                vgdataLV UUID                G5fcJ2-KMgf-GaCK-ltCk-QFNR-q3tx-pevt1BLV Write Access        read/writeLV Creation host, time xz-ras-data.novalocal, 2022-06-22 09:25:32 +0000LV Status              available# open                 0LV Size                140.00 GiBCurrent LE             35840Segments               1Allocation             inheritRead ahead sectors     auto- currently set to     8192Block device           252:3--- Logical volume ---LV Path                /dev/vgdata/lv_bank_filesLV Name                lv_bank_filesVG Name                vgdataLV UUID                n1jVOQ-7ToG-W1ML-B1uH-rcOz-chiR-TczjZHLV Write Access        read/writeLV Creation host, time xz-ras-data.novalocal, 2022-06-22 09:25:47 +0000LV Status              available# open                 0LV Size                120.00 GiBCurrent LE             30720Segments               1Allocation             inheritRead ahead sectors     auto- currently set to     8192Block 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_filesPath required for Logical Volume "lv_boss_file".Please provide a valid volume group nameRun `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_filesRenamed "lv_boss_file" to "lv_boss_files" in volume group "vgdata"
[root@xz-ras-data ~]# lvsLV            VG     Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertlv_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问题排查及处理、

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

  1. 解决linux mysql命令 bash: mysql: command not found 的方法

    解决linux mysql命令 bash: mysql: command not found 的方法 参考文章: (1)解决linux mysql命令 bash: mysql: command not ...

  2. linux -bash: ipconfig: command not found 解决方法

    linux -bash: ipconfig: command not found 解决方法 参考文章: (1)linux -bash: ipconfig: command not found 解决方法 ...

  3. Linux -bash java command not found 解决方法

    在Linux环境下安装JDK之后,使用java 测试是否安装成功,结果报错-bash: java: command not found 解决方案如下: 1.查看Linux环境自带JDK 使用命令:# ...

  4. 解决bash: mysql: command not found 的方法【linux mysql命令 】

    linux下,在mysql正常运行的情况下,输入mysql提示: mysql command not found 遇上-bash: mysql: command not found的情况别着急,这个是 ...

  5. Java 为什么不支持创建泛型化数组

    没事的时候在书中翻了下泛型相关的知识,注意到一个比较有意思的问题:Java 不能创建泛型化数组.比如像下面这样就是不允许的: // 创建一个泛型类 public class Generic<T& ...

  6. 运维标准化与流程化建设

    运维标准化与流程化建设 当下企业很多都热衷于建设运维自动化.智能化,通过技术革新代替繁杂的手工运维,提高生产效率的同时最大程度的减少人为失误.但是如何建设自动化运维,在不同的企业有着不同的建设方法和技 ...

  7. Windows7中创建逻辑驱动器(扩展分区)

    录: Windows7中创建逻辑驱动器(扩展分区) 注: This solution is only available in Chinese. Cette solution est uniqueme ...

  8. diskpart命令创建GPT磁盘分区

    利用diskpart命令创建GPT磁盘分区图文教程很多朋友都是使用工具软件完成创建GPT磁盘分区,实际上你无论你是使用光盘.U盘还是硬盘(NT6)等方式全新安装Win7或者Win8系统,都可以利用di ...

  9. linux telnet: command not found,提示-bash: telnet: command not found的解决方法

    Linux centos 运行telnet命令,出现下面的错误提示: [root@localhost ~]# telnet 127.0.0.1 -bash: telnet: command not f ...

最新文章

  1. idea 2019安装完(打不开启动不了)问题解决(最全解决方法)
  2. 用函数的思想进行四则运算
  3. 深入浅出 5种IO模型。
  4. javacore分析工具_Javacore 与 WebSphere Commerce 性能问题之争?谁才是赢家
  5. 功能Java示例 第8部分–更多纯函数
  6. 时隔多日,旧域名重用,niceyoo博客上线
  7. Matplotlib - 柱状图、直方图、条形图 bar() barh() 所有用法详解
  8. 史上最萌最认真的机器学习/深度学习/模式识别入门指导手册(二)
  9. cypress离线安装_【拆一个高端货】 美国NI公司 GPIB-USB转接卡 长标题
  10. 机器学习基础算法14-波士顿房价预测-ElasticNet模型
  11. 北京赛区参赛选手代表吴翼在开幕式上的发言稿完整版2011年11月02日 09:50:34
  12. delphi调用chrome内核进行浏览
  13. NiFi 1.16.3 生产使用的更新及BUG。
  14. CH(NH2)2PbI3(FAPbI3) 甲脒碘基钙钛矿 1451592-07-6
  15. 神器推荐:应用之星,零代码就能制作炫酷的H5页面
  16. Python3-豆瓣电影影片差评和影片封面照片的爬取
  17. Apsara Clouder基础技能认证:实现调用API接口
  18. Golang 插件开发入门教程
  19. 生物学和游戏:为什么女人不爱游戏- -
  20. python发送免费短信验证码(腾讯云 短信)

热门文章

  1. 数据库操作之插入一行数据
  2. 用HTML创作一个简单的电子时钟
  3. vc调用matlab直方图,图像各向异性扩散算法(VC与Matlab版本实现)
  4. OSChina 周六乱弹 —— 我一直把一哥们当朋友,但
  5. [附源码]java毕业设计图书管理系统论文
  6. Javascript个人所得税计算公式
  7. Linux驱动开发-proc接口介绍
  8. 2-氟丙二酸二乙酯,cas685-88-1等含氟试剂,氟化试剂
  9. 服务器抓取MIUI ota信息,小米手机获取root权限(保留OTA升级 / 刷第三方Recovery )...
  10. python爬虫(13)爬取百度贴吧帖子