当前位置: 澳门新濠3559 > 操作系统 > 正文

PV内PE的数量取决于这块磁盘的容量/4M.,表示指定

时间:2019-10-07 00:26来源:操作系统
LVM学习逻辑卷管理创建逻辑卷遇到的问题 1 实验环境 系统 内核 发行版本 CentOS 2.6.32-754.2.1.el6.x86_64 CentOS release 6.10 (Final) 由于是最小化安装没有xfs命令, yum 安装如下包支持此命令 [roo

LVM学习逻辑卷管理创建逻辑卷遇到的问题

1 实验环境

系统 内核 发行版本
CentOS 2.6.32-754.2.1.el6.x86_64 CentOS release 6.10 (Final)

由于是最小化安装没有xfs命令,yum安装如下包支持此命令

[root@www ~]# yum install xfsprogs
Loaded plugins: fastestmirror, security
Setting up Install Process
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package xfsprogs.x86_64 0:3.1.1-20.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================
 Package                 Arch                  Version                      Repository           Size
======================================================================================================
Installing:
 xfsprogs                x86_64                3.1.1-20.el6                 base                725 k

Transaction Summary
======================================================================================================
Install       1 Package(s)

Total download size: 725 k
Installed size: 3.2 M
Is this ok [y/N]: y
Downloading Packages:
xfsprogs-3.1.1-20.el6.x86_64.rpm                                               | 725 kB     00:00     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : xfsprogs-3.1.1-20.el6.x86_64                                                       1/1 
  Verifying  : xfsprogs-3.1.1-20.el6.x86_64                                                       1/1 

Installed:
  xfsprogs.x86_64 0:3.1.1-20.el6                                                                      

Complete!

2 用gdisk分区对/dev/sdb分区然后再删除后遇到以下问题

[root@www ~]# pvcreate /dev/sdb
  Device /dev/sdb not found (or ignored by filtering).

3 解决方法

开始尝试使用partprobe /dev/sdb但是没有用处,后来用如下命令解决.

[root@www ~]# dd if=/dev/urandom of=/dev/sdb bs=512 count=64
64 0 records in
64 0 records out
32768 bytes (33 kB) copied, 0.0513912 s, 638 kB/s
[root@www ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  4.3G  0 rom  
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0  200M  0 part /boot
├─sda2   8:2    0    1G  0 part [SWAP]
└─sda3   8:3    0 18.8G  0 part /
sdb      8:16   0    1G  0 disk 
sdc      8:32   0    1G  0 disk 
sdd      8:48   0    1G  0 disk 
sde      8:64   0    1G  0 disk 
[root@www ~]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created
[root@www ~]# 

[root@www ~]# pvs
  PV         VG   Fmt  Attr PSize PFree
  /dev/sdb        lvm2 ---- 1.00g 1.00g
  /dev/sdc        lvm2 ---- 1.00g 1.00g
  /dev/sdd        lvm2 ---- 1.00g 1.00g

为什么会报如上的错误呢,我现在还没有搞清楚.

[root@www ~]# vgcreate storage /dev/sdb /dev/sdc /dev/sdd
  Volume group "storage" successfully created
[root@www ~]# vgs
  VG      #PV #LV #SN Attr   VSize VFree
  storage   3   0   0 wz--n- 2.99g 2.99g
[root@www ~]# pvs
  PV         VG      Fmt  Attr PSize    PFree   
  /dev/sdb   storage lvm2 a--u 1020.00m 1020.00m
  /dev/sdc   storage lvm2 a--u 1020.00m 1020.00m
  /dev/sdd   storage lvm2 a--u 1020.00m 1020.00m

4 创建一个150M大小的逻辑卷

[root@www ~]# lvcreate -n vo -L 150M storage
  Rounding up size to full physical extent 152.00 MiB
  Logical volume "vo" created.
[root@www ~]# lvs
  LV   VG      Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  vo   storage -wi-a----- 152.00m   

5 把生成号的逻辑卷进行格式化,然后挂载使用.

[root@www ~]# mkfs.xfs /dev/storage/vo
meta-data=/dev/storage/vo        isize=256    agcount=4, agsize=9728 blks
         =                       sectsz=512   attr=2, projid32bit=0
data     =                       bsize=4096   blocks=38912, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal log           bsize=4096   blocks=1200, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@www ~]# mount /dev/storage/vo /soft/
[root@www ~]# ls /soft/
[root@www ~]# 

永久挂载,重启后生效,这里可以使用/dev/storage/vo也可以使用uuid推荐使用后者.

UUID="645e5ca4-d564-425b-ad50-a9d43536951f" /soft xfs   defaults        0 0

可以使用umount /soft卸载,再使用mount -a检查一下有没有挂载成功.使用df -hPV内PE的数量取决于这块磁盘的容量/4M.,表示指定空间大小 -n 表示指定逻辑卷的名字。查看分区情况

[root@www ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3              19G  1.7G   16G  10% /
tmpfs                 490M     0  490M   0% /dev/shm
/dev/sda1             190M   59M  122M  33% /boot
/dev/mapper/storage-vo
                      148M  7.8M  140M   6% /soft

Linux LVM逻辑卷,linuxlvm逻辑

 

创建LVM

  • 划分分区,并指定适合的LVM的ID
    [root@centos6 rf]# fdisk/dev/sdc使用fdisk划分一个分区;也可直接拿块新硬盘直接创建LVM逻辑卷
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x3ca76d2c.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

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): p 查看/dev/sdc硬盘的分区情况;由于是新硬盘所以没有分区表

Disk /dev/sdc: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x3ca76d2c

   Device Boot      Start         End      Blocks   Id  System

Command (m for help): n 表示创建一个分区
Command action
   e   extended
   p   primary partition (1-4)
p   表示主分区  MBR分区表最多只允许4个主分区或3个主分区加一个扩展分区,可以扩展分区创建多个逻辑分区(e|p) e表示扩展分区;p表示主分区
Partition number (1-4): 1   分区号
First cylinder (1-2610, default 1):   指定开始的柱面这里如果不指定表示选择的是默认柱面,扩展分区不要让系统默认否则会出错
Using default value 1
Last cylinder,  cylinders or  size{K,M,G} (1-2610, default 2610):  10G  创建的大小可以指定柱面 也可以指定空间的大小

Command (m for help): t 调整分区的ID
Selected partition 1
Hex code (type L to list codes): l 查看系统默认支持的所有分区ID

 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
 1  FAT12           39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      41  PPC PReP Boot   85  Linux extended  c7  Syrinx         
 5  Extended        42  SFS             86  NTFS volume set da  Non-FS data    
 6  FAT16           4d  QNX4.x          87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS       4e  QNX4.x 2nd part 88  Linux plaintext de  Dell Utility   
 8  AIX             4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt         
 9  AIX bootable    50  OnTrack DM      93  Amoeba          e1  DOS access     
 a  OS/2 Boot Manag 51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       52  CP/M            9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs        
 e  W95 FAT16 (LBA) 54  OnTrackDM6      a5  FreeBSD         ee  GPT            
 f  W95 Ext'd (LBA) 55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor      
12  Compaq diagnost 61  SpeedStor       a9  NetBSD          f4  SpeedStor      
14  Hidden FAT16 <3 63  GNU HURD or Sys ab  Darwin boot     f2  DOS secondary  
16  Hidden FAT16    64  Novell Netware  af  HFS / HFS       fb  VMware VMFS    
17  Hidden HPFS/NTF 65  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST SmartSleep  70  DiskSecure Mult b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 75  PC/IX           bb  Boot Wizard hid fe  LANstep        
1c  Hidden W95 FAT3 80  Old Minix       be  Solaris boot    ff  BBT            
1e  Hidden W95 FAT1
Hex code (type L to list codes): 8e 这里选择8e 8e表示LVM
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): p 查看分区情况

Disk /dev/sdc: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x3ca76d2c

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1        1306    10490413   8e  Linux LVM
Command (m for help): w保存退出
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
  • 注意 这里此磁盘分区已同步到内存中centos6新增磁盘同步分区表的
  • partx -a /dev/DEVICE 或者 kpartx -a /dev/DEVICE -f: force
  • centos6删除分区表同步的方法
  • partx -d --nr M-N /dev/DEVICE
  • CentOS 5 ,7: 增加分区或删除分区 使用partprobe

扩容逻辑卷

这里使用lvextend -l 50指定200M大小的逻辑卷,计算方法为4M*50.

[root@www ~]# lvextend -l 50 /dev/storage/vo
  Size of logical volume storage/vo changed from 152.00 MiB (38 extents) to 200.00 MiB (50 extents).
  Logical volume vo successfully resized.

[root@www ~]# lvs
  LV   VG      Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  vo   storage -wi-a----- 200.00m   

新硬盘加入vg卷组

[root@www ~]# pvcreate /dev/sde
  Physical volume "/dev/sde" successfully created
[root@www ~]# pvs
  PV         VG      Fmt  Attr PSize    PFree   
  /dev/sdb   storage lvm2 a--u 1020.00m  820.00m
  /dev/sdc   storage lvm2 a--u 1020.00m 1020.00m
  /dev/sdd   storage lvm2 a--u 1020.00m 1020.00m
  /dev/sde           lvm2 ----    1.00g    1.00g

[root@www ~]# vgextend storage /dev/sde
  Volume group "storage" successfully extended
[root@www ~]# vgs
  VG      #PV #LV #SN Attr   VSize VFree
  storage   4   1   0 wz--n- 3.98g 3.79g

[root@www ~]# pvs
  PV         VG      Fmt  Attr PSize    PFree   
  /dev/sdb   storage lvm2 a--u 1020.00m  820.00m
  /dev/sdc   storage lvm2 a--u 1020.00m 1020.00m
  /dev/sdd   storage lvm2 a--u 1020.00m 1020.00m
  /dev/sde   storage lvm2 a--u 1020.00m 1020.00m

从vg卷组移除一块硬盘

[root@www ~]# vgreduce storage /dev/sde
  Removed "/dev/sde" from volume group "storage"
[root@www ~]# vgs
  VG      #PV #LV #SN Attr   VSize VFree
  storage   3   1   0 wz--n- 2.99g 2.79g
[root@www ~]# pvs
  PV         VG      Fmt  Attr PSize    PFree   
  /dev/sdb   storage lvm2 a--u 1020.00m  820.00m
  /dev/sdc   storage lvm2 a--u 1020.00m 1020.00m
  /dev/sdd   storage lvm2 a--u 1020.00m 1020.00m
  /dev/sde           lvm2 ----    1.00g    1.00g

逻辑卷裁剪大小为120M

[root@www ~]# lvreduce -L 120M /dev/storage/vo
  WARNING: Reducing active logical volume to 120.00 MiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce storage/vo? [y/n]: y
  Size of logical volume storage/vo changed from 200.00 MiB (50 extents) to 120.00 MiB (30 extents).
  Logical volume vo successfully resized.
[root@www ~]# lvs
  LV   VG      Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  vo   storage -wi-a----- 120.00m                                                    
[root@www ~]# 

删除逻辑卷,依次删除lv逻辑卷,gv卷组,pv物理卷

[root@www ~]# lvremove /dev/storage/vo
Do you really want to remove active logical volume vo? [y/n]: y
  Logical volume "vo" successfully removed
[root@www ~]# lvs
[root@www ~]# vgremove storage
  Volume group "storage" successfully removed
[root@www ~]# vgs
[root@www ~]# pvremove /dev/sde
  Labels on physical volume "/dev/sde" successfully wiped
[root@www ~]# pvs
  PV         VG   Fmt  Attr PSize PFree
  /dev/sdb        lvm2 ---- 1.00g 1.00g
  /dev/sdc        lvm2 ---- 1.00g 1.00g
  /dev/sdd        lvm2 ---- 1.00g 1.00g
[root@www ~]# pvremove /dev/sdd /dev/sdc /dev/sdb
  Labels on physical volume "/dev/sdd" successfully wiped
  Labels on physical volume "/dev/sdc" successfully wiped
  Labels on physical volume "/dev/sdb" successfully wiped
[root@www ~]# pvs

数据迁移,首先创建一些文件touch /soft/{00..100}.txt,然后进行数据迁移.

[root@www ~]# pvs
  PV         VG      Fmt  Attr PSize    PFree   
  /dev/sdb   oradata lvm2 a--u 1020.00m  140.00m
  /dev/sdc   oradata lvm2 a--u 1020.00m 1020.00m
  /dev/sdd   oradata lvm2 a--u 1020.00m 1020.00m
  /dev/sde   oradata lvm2 a--u 1020.00m 1020.00m

[root@www ~]# pvmove /dev/sdb /dev/sdd
  /dev/sdb: Moved: 0.9%
  /dev/sdb: Moved: 36.4%
  /dev/sdb: Moved: 54.5%
  /dev/sdb: Moved: 100.0%
[root@www ~]# pvs
  PV         VG      Fmt  Attr PSize    PFree   
  /dev/sdb   oradata lvm2 a--u 1020.00m 1020.00m
  /dev/sdc   oradata lvm2 a--u 1020.00m 1020.00m
  /dev/sdd   oradata lvm2 a--u 1020.00m  140.00m
  /dev/sde   oradata lvm2 a--u 1020.00m 1020.00m
[root@www ~]# 

迁移后查看文件并没有丢失,最后删除这些文件.

[root@www ~]# ls /soft/
000.txt  010.txt  020.txt  030.txt  040.txt  050.txt  060.txt  070.txt  080.txt  090.txt  100.txt
001.txt  011.txt  021.txt  031.txt  041.txt  051.txt  061.txt  071.txt  081.txt  091.txt  
002.txt  012.txt  022.txt  032.txt  042.txt  052.txt  062.txt  072.txt  082.txt  092.txt
003.txt  013.txt  023.txt  033.txt  043.txt  053.txt  063.txt  073.txt  083.txt  093.txt
004.txt  014.txt  024.txt  034.txt  044.txt  054.txt  064.txt  074.txt  084.txt  094.txt
005.txt  015.txt  025.txt  035.txt  045.txt  055.txt  065.txt  075.txt  085.txt  095.txt
006.txt  016.txt  026.txt  036.txt  046.txt  056.txt  066.txt  076.txt  086.txt  096.txt
007.txt  017.txt  027.txt  037.txt  047.txt  057.txt  067.txt  077.txt  087.txt  097.txt
008.txt  018.txt  028.txt  038.txt  048.txt  058.txt  068.txt  078.txt  088.txt  098.txt
009.txt  019.txt  029.txt  039.txt  049.txt  059.txt  069.txt  079.txt  089.txt  099.txt

[root@www ~]# find /soft/ -type f -size 0 -delete

概述  

      LVM的产生是因为传统的分区一旦分区好后就无法在线扩充空间,也存在一些工具能实现在线扩充空间但是还是会面临数据损坏的风险;传统的分区当分区空间不足时,一般的解决办法是再创建一个更大的分区将原分区卸载然后将数据拷贝到新分区,但是在企业的生产系统往往不允许停机或者允许停机的时间很短,LVM就能很好的解决在线扩充空间的问题,而且不会对数据造成影响,LVM还能通过快照在备份的过程中保证日志文件和表空间文件在同一时间点的一致性;本篇文章不会对概念知识做太详细的介绍,主要讲述LVM的扩容、收缩、移除的方法。

 

1. 什么是LVM

分区已划分创建LVM

  • 创建物理卷
  • [root@centos6 rf]# pvcreate /dev/sdc1
  • Physical volume "/dev/sdc1" successfully created
  • [root@centos6 rf]# pvdisplay 查看系统上所有的物理卷的详细信息
"/dev/sdc1" is a new physical volume of "10.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdc1
  VG Name                PV Size               10.00 GiB
  Allocatable           NO
   PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               n4NV1m-sr2p-A5K0-ckl4-681D-ah7g-HtYjmo
  • [root@centos6 rf]# pvs 显示系统上物理卷的信息
 PV         VG   Fmt  Attr PSize  PFree 
 /dev/sdc1       lvm2 ---- 10.00g 10.00g
  • [root@centos6 rf]# vgcreate -s 10M vg0 /dev/sdc1 创建卷组 -s 指定PE大小 可以省略,省略表示选择默认值 后面跟的是卷组的名字 指定从哪个物理卷划分
  • Volume group "vg0" successfully created
  • [root@centos6 rf]# vgdisplay 查看卷组相关的信息
--- Volume group ---
 VG Name               vg0   卷组名称
 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               10.00 GiB 卷组总大小
 PE Size               10.00 MiB PE大小
 Total PE              1024 PE个数
 Alloc PE / Size       0 / 0   
 Free  PE / Size       1024 / 10.00 GiB
 VG UUID               ZujzGf-nNnJ-LfZb-ge6F-fiAP-MtHW-EepPhI
  • [root@centos6 rf]# vgs 查看系统中的卷组
VG   #PV #LV #SN Attr   VSize  VFree 
vg0    1   0   0 wz--n- 10.00g 10.00g

[root@centos6 rf]# lvcreate -L 10G -n cx vg0 创建逻辑卷 -L 表示指定空间大小 -n 表示指定逻辑卷的名字 后面跟卷组名字表示从哪个卷组中划分逻辑分区

  Logical volume "cx" created.

[root@centos6 rf]# mkfs.ext4 /dev/vg0/cx 创建文件系统

mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2684354560
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 30 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
  • [root@centos6 rf]# mkdir /cx 创建一个目录做挂载点
  • [root@centos6 rf]# vim /etc/fstab 编辑 /etc/fstab添加“UUID=d7ab49ba-156c-4ca4-8e57-d2c6e8dd3076 /cx ext4 defaults 1 0
  • [root@centos6 ~]# blkid /dev/vg0/cx 查看UUID
/dev/vg0/cx: UUID="d7ab49ba-156c-4ca4-8e57-d2c6e8dd3076" TYPE="ext4"
  • [root@centos6 rf]# mount -a 挂载/etc/fstab 文件中未挂载的设备
    [root@centos6 rf]# mount 查看已挂载的设备
/dev/sda2 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
/dev/sda6 on /home type ext4 (rw,usrquota)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/mapper/vg0-cx on /cx type ext4 (rw)

原理  

澳门新濠3559 1

PE(Physical Extend):卷的最小单位,默认4M大小,就像我们的数据是以页的形式存储一样,卷就是以PE的形式存储。

PV(Physical Volume):物理卷,如果要使用逻辑卷,首先第一步操作就是将磁盘格式化成PV,从上图可以看出PV是保护PE的,PV内PE的数量取决于这块磁盘的容量/4M.

VG(Volume Group):卷组,VG就是将很多PE组合在一起生成一个卷组,当然这里的PE是可以跨磁盘的,如果当前服务器磁盘空间不足就可以增加一个新磁盘对当前系统不会产生任何影响。

LV(Logical Volume):逻辑卷,逻辑卷最终是给用户使用的,前面几个都是为创建逻辑卷做的准备,创建逻辑卷的大小只要不超过VG剩余空间就可以。

步骤:

1.PV:格式化磁盘

2.VG:创建卷组

3.LV:创建逻辑卷

4.mkfs:格式化逻辑卷

5.mount:挂载逻辑卷


扩展LVM分区

  • 1如果卷组里还有多余的空间,可以直接扩展逻辑卷;如果没有多余的空间就需要先扩展卷组
  • 我这里先用一块新硬盘扩展物理卷再扩展卷组最后扩展逻辑分区
  • [root@centos6 ~]# pvcreate /dev/sdd # 扩展物理卷 ;如果有多余的物理卷,可以直接扩展卷组
  Physical volume "/dev/sdd" successfully created

[root@centos6 ~]# pvs 查看物理卷PV的信息

  PV         VG   Fmt  Attr PSize  PFree 
  /dev/sdc1  vg0  lvm2 a--u 10.00g     0 
  /dev/sdd        lvm2 ---- 60.00g 60.00g

[root@centos6 ~]# vgextend vg0 /dev/sdd 使用vgextend 扩展卷组(vg) 后面跟卷组名 指定把那个物理卷扩展到卷组

  Volume group "vg0" successfully extended
  • [root@centos6 ~]# vgdisplay
  --- Volume group ---
  VG Name               vg0  卷组名字
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               69.99 GiB 卷组总大小
  PE Size               10.00 MiB PE的大小
  Total PE              7167  PE个数
  Alloc PE / Size       1024 / 10.00 GiB  已分配的给逻辑卷(lv)使用的空间
  Free  PE / Size       6143 / 59.99 GiB  未分配空间
  VG UUID               ZujzGf-nNnJ-LfZb-ge6F-fiAP-MtHW-EepPhI

[root@centos6 ~]# lvextend -r -l 1000 /dev/vg0/cx 扩展逻辑卷并同步文件系统-r 表示同步文件系统

  Size of logical volume vg0/cx changed from 10.00 GiB (1024 extents) to 19.77 GiB (2024 extents).
  Logical volume cx successfully resized.
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mapper/vg0-cx is mounted on /cx; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/mapper/vg0-cx to 5181440 (4k) blocks.
The filesystem on /dev/mapper/vg0-cx is now 5181440 blocks long.

澳门新濠3559,创建LV  

1.PV(格式化磁盘):pvcreate命令      

 第一步就是对磁盘格式化,不要对现有已分区的磁盘做这个操作。

 先查看当前系统磁盘信息,我电脑通过虚拟机刚添加了两块块20G的磁盘,分别是sdb、sdc,使用fdisk -l查看

fdisk -l

澳门新濠3559 2

格式化/dev/sdb

pvcreate /dev/sdb /dev/sdc

澳门新濠3559 3

使用pvdisplay或者pvs查看pv信息

澳门新濠3559 4

从上图可以的信息可以得知PV的大小和剩余空间信息。

2.VG(创建卷组):vgcreate命令

vgcreate vggroup /dev/sdb /dev/sdc

vggroup是卷组名称

澳门新濠3559 5

使用vgdisplay和vgs查看vg信息

澳门新濠3559 6

 

通过vgdisplay可以查看vg的大小和PE的大小,从上图可以看到单个PE的默认大小是4M,当前VG总共有10238个PE,当前vg总共使用了两个pv。

3.LV(创建逻辑卷):lvcreate -n 逻辑卷名称 -L 逻辑卷大小 卷组名

记住创建逻辑卷大小不能超过卷组的剩余空间大小,我这里创建30G大小的逻辑卷。

lvcreate -n lv -L 30G vggroup

澳门新濠3559 7

使用lvdisplay和lvs查看lv的信息

 澳门新濠3559 8

lvdisplay可以获取到的lv信息包括,lv的名称和路径、lv对应的vg组的名称、lv的大小、当前lv包含的PE数量。

lv的文件路径保存在vg下面。

4.mkfs(格式化lv)

mkfs.ext4 /dev/vggroup/lv

澳门新濠3559 9

5.mount(挂载LV)

mount -t ext4 /dev/vggroup/lv /mnt

澳门新濠3559 10

使用df -h查看挂载信息

澳门新濠3559 11

LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是对磁盘分区进行管理的一种机制, LVM是建立在硬盘和分区之上的一个逻辑层,用来提高磁盘管理的灵活性.通过LVM可将若干个 磁盘分区连接为一个整块的卷组(Volume Group),形成一个存储池.可以在卷组上随意创建逻辑 卷(Logical Volumes),并进一步在逻辑卷上创建文件系统.

注意扩展逻辑卷无需取消挂载;建议提前备份数据

扩充逻辑卷(LV)  

 在对LV(逻辑卷)进行容量扩充之前先查看VG(卷组)中剩余空间有多少,扩充的大小不能超过VG剩余的空间大小

vgdisplay

澳门新濠3559 12

当前VG剩余空间9.99G

1.lvextend(扩充逻辑卷)

为了演示在线扩充对文件不造成影响,我先在/mnt目录下创建了一个text测试文件,内容为“1”

lvextend -L  9.99G /dev/vggroup/lv

这里将VG所有的剩余空间全部划分给LV

澳门新濠3559 13

澳门新濠3559 14

vg的剩余空间变成了0

澳门新濠3559 15

LV的大小变成了39.99G

2.resize2fs:更新文件系统 

resize2fs  /dev/vggroup/lv

澳门新濠3559 16

查看/mnt目录下的text文件是否受影响

澳门新濠3559 17

 文件没有受影响。

2. LVM的作用

缩减逻辑卷

  • 先取消挂载
  • [root@centos6 ~]# umount /dev/vg0/cx
  • 检查文件系统完整性,这一步必须否则系统不让缩
  • [root@centos6 ~]# e2fsck -f /dev/vg0/cx
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vg0/cx: 11/1302528 files (0.0% non-contiguous), 121551/5181440 blocks
  • 缩减文件系统到15G
    [root@centos6 ~]# resize2fs /dev/vg0/cx 15G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/vg0/cx to 3932160 (4k) blocks.
The filesystem on /dev/vg0/cx is now 3932160 blocks long.
  • 缩减逻辑卷到15G,注意这里缩减的大小与文件系统大小一致
  • [root@centos6 ~]# lvreduce -L 15G /dev/vg0/cx
 WARNING: Reducing active logical volume to 15.00 GiB.
 THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg0/cx? [y/n]: y  提醒用户缩减空间可能会损坏数据
 Size of logical volume vg0/cx changed from 19.77 GiB (2024 extents) to 15.00 GiB (1536 extents).
 Logical volume cx successfully resized.

缩减逻辑卷成

扩充卷组(VG)  

 当前我系统VG已经没有剩余空间了,如果这个时候系统空间不够了,这个时候就要增加一块磁盘来增加VG的大小,在虚拟机我增加一个10G的新磁盘sdd

1.格式化新磁盘(pvcreate)

pv /dev/sdd

2.将格式化的PV添加到VG中去(vgextend)

vgextend vggroup /dev/sdd

3.查看当前vg的大小(vgdisplay)

澳门新濠3559 18

 

当前VG的大小变成了50G,剩余空间也变成10G,当前VG的PV数变成了3


创建逻辑卷快照

  • [root@centos6 ~]# mount -a 挂载文件系统
  • [root@centos6 ~]# mount
/dev/sda2 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
/dev/sda6 on /home type ext4 (rw,usrquota)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/mapper/vg0-cx on /cx type ext4 (rw)

拷贝数据

  • [root@centos6 ~]# cp /etc/passwd /cx/
  • [root@centos6 ~]# ls /cx/
lost found  passwd
  • 创建快照
  • [root@centos6 ~]# lvcreate -L 1G -s -n cx-date -p r /dev/vg0/cx
  Rounding up size to full physical extent 1.01 GiB
  Logical volume "cx-date" created.
  • [root@centos6 ~]# mkdir ll
  • [root@centos6 ~]# mount /dev/vg0/cx-date ll
mount: block device /dev/mapper/vg0-cx--date is write-protected, mounting read-only  挂载快照
  • [root@centos6 ~]# ls l 查看快照
lost found  passwd
  • [root@centos6 ~]# rm -rf /cx/passwd 删除源文件的部分数据
    取消逻辑卷与快照的挂载
  • [root@centos6 ~]# umount /cx/
  • [root@centos6 ~]# umount ll/
  • 恢复快照 注意恢复快照会被删除
  • [root@centos6 ~]# lvconvert --merge /dev/vg0/cx-date

    Merging of volume cx-date started.
    cx: Merged: 100.0%
    Merge of snapshot into logical volume cx has finished.
    Logical volume "cx-date" successfully removed
    
  • 快照被删除

  • [root@centos6 ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/vg0/cx
  LV Name                cx
  VG Name                vg0
  LV UUID                YqujVe-SSvL-BDFZ-TuPu-YMTg-lXTe-DnlubY
  LV Write Access        read/write
  LV Creation host, time centos6.chenxi.com, 2017-06-24 08:52:01  0800
  LV Status              available
  # open                 0
  LV Size                15.00 GiB
  Current LE             1536
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

查看是否成功恢复

  • [root@centos6 ~]# mount -a
  • [root@centos6 ~]# cat /cx/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin......

收缩逻辑卷(LG)  

 注意:对逻辑卷进行收缩操作之前必须先卸载逻辑卷,再缩小文件系统,最后才是缩小逻辑卷,而且收缩的大小也不能超过剩余空间大小。

1.卸载逻辑卷(unmount)

umount /mnt

澳门新濠3559 19

2.收缩文件系统

这步一定要操作,而且是在收缩LV之前操作

先检查文件系统(e2fsck)

e2fsck -f /dev/vggroup/lv

澳门新濠3559 20

缩小文件系统(resize2fs)

将文件系统缩小到30G,刚才如果细心注意会发现,使用lvdisplay查看文件系统是39.9G,而通过df -h查看是40G,这里以df -h的大小为准,因为下一步收缩LV的时候是通过减操作,所以要数据一致性下一步就是-10G

--将文件系统缩小为30G
resize2fs /dev/vggroup/lv 30G

澳门新濠3559 21

3.缩小LV(lvreduce)

lvreduce -L -10G /dev/vggroup/lv

澳门新濠3559 22

注意:这三步操作顺序不能弄乱。

接下来再挂载lV卷看看空间是否修改

mount /dev/vggroup/lv /mnt/

澳门新濠3559 23

可以看到重新挂载后text文件还是存在,lv的大小也变成了30G

 

虽然可以使用收缩LV但是还是不建议这样做,特别是企业的系统,因为收缩后的结果会存在很多的未知可能。

通过LVM可以方便的调整存储卷的大小,并且可以对磁盘存储按照组的方式进行命名、管理和 分配,例如按照使用用途进行定义:”development”和”data”,而不是使用物理磁盘名”sda”和 “sdb”.当系统添加了新的磁盘,通过LVM可以直接扩展文件系统跨越该磁盘, 而不必将文件移动 到新的磁盘上.

迁移LVM到其他主机,先取消挂载

  • 迁移前改个名字 如果目标主机没有重复名字的卷组就不用更改
  • vgrename 原名 新名字
  • lvrename 原名 新名字 改逻辑卷的名字
  • umount /cx/取消挂载
  • pvmove /dev/sdc1 迁移PE空间,迁移前应先查看卷组PE空间是否够sdc1 PE空间使用,如果不够应先扩展卷组空间
  • vgchange -an vg0 禁用卷组
  • vgexport vg0 导出卷组
  • 拔出对应的硬盘拔出
    在目标计算机上
  • 在新系统中安装旧硬盘,并vgimport vg0.
  • vgchange –ay vg0 启用卷组
  • mount 挂载

收缩卷组(VG)  

 收缩卷组只能对那些未使用pv进行操作,如果你的当前PV已经已经在逻辑卷中被使用,那么该PV是不能去除的,比如刚才新增加的sdd磁盘未被使用就可以将其从VG中去除。

通过PVS查看那些PV已被使用

pvs

澳门新濠3559 24

当前只有/dev/sdd未被使用

1.卸载逻辑卷

逻辑卷对应的是卷组而不是PV,虽然sdd在前面的操作并没有被添加到LV当中,但是这里还是需要先将LV卸载

umount /mnt

2.移除PV(vgreduce)

vgreduce vggroup /dev/sdd

澳门新濠3559 25

3.删除pv

pvremove /dev/sdd

澳门新濠3559 26

可以看到/dev/sdd已经被移除

 

3. 基本概念

删除lv、vg、pv  

1.同样删除前先卸载所有lv,在当前系统只有一个lv

umount /mnt

 

2.lvremove,vgreomve,pvremove

--删除LV
lvremove /dev/vggroup/lv

--删除VG
vgremove vggroup

--删除PV
pvremove /dev/sdb /dev/sdc

澳门新濠3559 27

这些删除操作都确保未被使用,比如删除LV在删除前先将数据拷贝出去然后再删除,删除VG确保VG组中不存在LV,删除PV刚才已经说过了,PV需要没有被使用。

 

mount挂载相关内容参考: 

分区相关内容参考:

本章内容参考来自:


总结

LVM带来的好处不仅仅是在线扩容,在备份的过程中为了保证日志文件和表空间文件一致性问题也用到了LVM,在后面详细讲备份相关内容的时候会详细讲,欢迎关注。

 

 

 不要吝啬投上您神圣的一票!!!

备注:

    作者:pursuer.chen

    博客:http://www.cnblogs.com/chenmh

本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接,否则保留追究责任的权利。

《欢迎交流讨论》

LVM逻辑卷,linuxlvm逻辑 概述 LVM的产生是因为传统的分区一旦分区好后就无法在线扩充空间,也存在一些工具能实现在线扩充空间但是还...

●物理卷pv(Physical Volume)
物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,
但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数.
●卷组vg(Volume Group)
卷组由物理卷组成,类似于非LVM系统中的物理硬盘,可以在卷组上创建一个或多个"LVM分区"(逻辑卷).
●逻辑卷lv(Logical Volume)
LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等).
●PE(Physical Extent)
每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的
最小单元.PE的大小是可配置的,默认为4MB.
●LE(Logical Extent)
逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位.在同一个卷组中,LE的大小和
PE是相同的,并且一一对应.
和非LVM系统将包含分区信息的元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷 组相关的元数据也是保存在位于物理卷起始处的VGDA(卷组描述符区域)中.VGDA包括以下内容: PV描述符、VG描述符、LV描述符、和一些PE描述符 .
系统启动LVM时激活VG,并将VGDA加载至内存,来识别LV的实际物理存储位置.当系统进行I/O操作 时,就会根据VGDA建立的映射机制来访问实际的物理位置.

4. 安装LVM


确定系统中是否安装了lvm工具:

1
2
# rpm -qa | grep lvm
lvm2-2.02.72

如果命令结果类似于上例,说明系统已经安装了LVM管理工具;如果命令没有输出则说明没有安装LVM管理工具,则需要从网络下载或者从光盘装LVM rpm工具包.
为了使用LVM,要确保在系统启动时激活LVM,RedHat发行版在启动时已经具有对激活LVM的 支持,在/etc/rc.d/rc.sysinit中有以下内容:

1
2
3
if [ -x /sbin/lvm ]; then
action quot;Setting up Logical Volume Management:" /sbin/lvm vgchange -a y --sysinit
fi

 

5. 创建和管理LVM


要创建一个LVM系统,一般需要经过以下步骤:
5.1、创建分区
使用分区工具(如:fdisk等)创建LVM分区,方法和创建其他一般分区的方式是一样的,区别 仅仅是LVM的分区类型为8e.

1
2
3
4
5
# fdisk -l /dev/sdc
Device Boot Start End Blocks Id System
/dev/sdc1 1 128 1028128 8e Linux LVM
/dev/sdc2 129 256 1028160 8e Linux LVM
/dev/sdc3 257 391 1084387 8e Linux LVM

5.2、pv阶段
5.2.1创建物理卷 创建物理卷的命令为pvcreate,利用该命令将希望添加到卷组的所有分区或者磁盘创建为物理卷.

1
2
3
4
# pvcreate /dev/sdc[1,2,3]
Physical volume "/dev/sdc1" successfully created
Physical volume "/dev/sdc2" successfully created
Physical volume "/dev/sdc3" successfully created

5.2.2查看物理卷,通过pvs命令你可以列出系统上所有的物理卷。
如果使用pvdisplay,你可以得到有关物理卷的更详细的信息。
5.3、vg阶段
5.3.1 创建卷组,创建卷组的命令为vgcreate,将使用pvcreate建立的物理卷创建为一个完整的卷组:

1
# vgcreate vg1 /dev/sdc1 /dev/sdc2 /dev/sdc3

vgcreate命令第一个参数是指定该卷组的逻辑名:vg1.后面参数是指定希望添加 到该卷组的所有分区和磁盘.vgcreate在创建卷组 vg1 以外,还设置使用大小为4MB 的PE(默认为4MB),这表示卷组上创建的所有逻辑卷都以 4MB 为增量单位来进行扩充或缩减.我们可以使用-s指定PE大小。
5.3.2查看卷组 通过vgs命令你可以列出系统上所有的卷组。
,如果使用vgdisplay命令,你可以得到有关卷组更详细的信息。

5.4、lv阶段
5.4.1创建逻辑卷 创建逻辑卷的命令为lvcreate:

1
#lvcreate -n data -L 1000 vg1

该命令就在卷组vg1上创建名字为data,大小为1000M的逻辑卷。这里我们使用大写L直接指定逻辑卷大小,你也可以使用小写l跟PE数量指定逻辑卷大小。

1
# lvcreate -n data1 -l 250 vg1

5.4.2查看逻辑卷,通过lvs可以列出系统上所有的逻辑卷。
如果使用lvdisplay,你可以得到有关逻辑卷的更详细的信息。

1
2
3
4
# lvdisplay /dev/vg1/data | grep "LV Size"
LV Size 1000.00 MiB
# lvdisplay /dev/vg1/data1 | grep "LV Size"
LV Size 1000.00 MiB

由于一个PE大小为4M,在创建data1逻辑卷的时候我们指定250个PE,所以大小也是1000M。
5.4.3逻辑卷的使用
逻辑卷创建了文件系统以后,就可以挂载并使用它:

1
2
3
# mkfs.ext3 /dev/vg1/data
# mkdir /var/wwwroot
# mount /dev/vg1/data /var/wwwroot

如果希望系统启动时自动加载文件系统,则还需要在/etc/fstab中添加内容.

 

6. LVM扩展逻辑卷大小


6.1扩展逻辑卷大小
LVM提供了方便调整逻辑卷大小的能力,扩展逻辑卷大小的命令是lvextend:
将逻辑卷www1的大小扩展为2000M.

1
# lvextend –L 2000M /dev/vg1/data

将逻辑卷www1的大小增加1000M.

1
# lvextend –L 1000M /dev/vg1/data

增加了逻辑卷的容量以后,就需要修改文件系统大小以实现利用扩充的空间. 对于使用ext3或 ext4文件系统的用户可以考虑使用resize2fs工具:

1
# resize2fs /dev/vg1/data

5.2.添加新的物理卷到卷组中
当系统安装了新的磁盘并创建了新的物理卷,而要将其添加到已有卷组时,就需要使用vgextend命令:

1
# vgextend vg1 /dev/sdd1 #这里/dev/sdd1是新的物理卷.

从卷组中删除一个物理卷,从已经创建号的卷组中删除一个物理卷,首先得使用pvmove将该物理馆上的数据移到别的物理卷,再使用vgreduce命令删除该物理卷。这样这个物理卷就像普通分区一样使用了。

1
2
# pvmove /dev/sdd1
# vgreduce vg1 /dev/sdd1

5.3.删除LV,VG
要.删除LV,VG,我们必须卸载挂载的逻辑卷,再使用vgchange命令停止卷组,然后先删除逻辑卷,再删除卷组。

1
2
3
4
# umount /dev/vg1/data
# vgchange –an /dev/vg1
# lvremove /dev/vg1/data
# vgremove /dev/vg1

注:-a是available的缩写,y表示yes,n表示no。

如下图:

澳门新濠3559 28 

转自:

编辑:操作系统 本文来源:PV内PE的数量取决于这块磁盘的容量/4M.,表示指定

关键词: 澳门新濠3559