【Linux】LVM邏輯捲管理和RAID

来源:https://www.cnblogs.com/qq1148932219/archive/2019/04/10/10684982.html
-Advertisement-
Play Games

LVM概述: 是對磁碟分區進行管理的一種機制 是一種將一個或多個硬碟的分區在邏輯上集合,相當於一個大硬碟來使用,當硬碟的空間不 夠使用的時候,可以繼續將其它的硬碟的分區加入其中,這樣可以實現一種磁碟空間的動態管理,相對於普通的磁碟分區有很大的靈活性,使用普通的磁碟分區,當一個磁碟的分區空間不夠使用的 ...


LVM概述:   是對磁碟分區進行管理的一種機制   是一種將一個或多個硬碟的分區在邏輯上集合,相當於一個大硬碟來使用,當硬碟的空間不 夠使用的時候,可以繼續將其它的硬碟的分區加入其中,這樣可以實現一種磁碟空間的動態管理,相對於普通的磁碟分區有很大的靈活性,使用普通的磁碟分區,當一個磁碟的分區空間不夠使用的時候,可能就會帶來很大的麻煩。使用LVM在一定程度上就可以解決普通磁碟分區帶來的問題。   屏蔽了底層磁碟佈局,便於動態調整磁碟容量   相對傳統分區方式的有下列優點     ·空間利用率高:硬碟的多個分區由LVM統一為捲組管理,可以方便的加入或移走分區以擴大或減小捲組的可用容量,充分利用硬碟空間     ·可以線上擴展容量:文件系統建立在邏輯捲上,而邏輯捲可根據需要改變大小(在捲組容量範圍內)以滿足要求     ·文件系統建立在LVM上,可以跨分區,方便使用     ·可隨意定義邏輯捲捲標      註:/boot分區用於存放引導文件,不能應用LVM機制   LVM機制的基本概念:   PV(Physical Volume,物理捲)     處於LVM最底層,可以是整個硬碟或使用fdisk等工具建立的普通分區,包括許多預設4MB大小的PE(Physical Extents,基本單元),PE是PV中可以用於分配的最小存儲單元   VG(Volume Group,捲組)     是一個或多個物理捲組合而成的整體,是建立在PV之上的。同一VG中所有PV的PE大小應該相同,當VG被創建後,我們才能正常查看PE的數量 。   LV(Logical Volume,邏輯捲)     從捲組中分割出的一塊空間,它是建立在VG之上,相當於原來分區的概念。不過大小可以動態改變。其實LV就是由PE組成的,不過在LV裡面這些PE叫做LE。   LE(Logical Extents)     LE是LV中可以用於分配的最小存儲單元,與PE大小相同並一一對應   LVM管理命令:        建立命令的方法:   ·pvcreate 設備名   ·vgcreate 捲組名 物理捲名1 物理捲名2   ·lvcreate -L 大小 -n 邏輯捲名 捲組名  
LVM應用實例:   公司的郵件伺服器由於用戶數量眾多,郵件存儲需要大量的空間,考慮到動態擴容的需要,計劃增加兩塊SCSI硬碟並構建LVM邏輯捲,掛載到“/mail”目錄專門用於存放郵件數據     1. 轉化物理捲       使用fdisk命令規劃兩個分區,類型設置為“8e”         /dev/sdb1、/dev/sdc1       使用pvcreate命令轉換上述分區為物理捲
[root@localhost ~]# fdisk -l /dev/sdb /dev/sdc | grep "LVM"
/dev/sdb1 1 9660 77593918+ 8e Linux LVM
/dev/sdc1 1 9660 77593918+ 8e Linux LVM

      ↑正確分區結果

    2. 創建捲組     使用vgcreate命令創建捲組mail_store     包括物理捲:/dec/sdb1、/dev/sdc1
[root@localhost ~]# vgcreate mail_store /dev/sdb1 /dev/sdc1
  Volume group "mail_store" successfully created

   

  3. 創建邏輯捲     使用lvcreate命令創建邏輯捲 mail     從捲組mail_store上划出60GB空間     使用mkfs命令創建ext4文件系統
[root@localhost ~]# lvcreate  -L  60G  -n  mail  mail_store
  /dev/cdrom: open failed: Read-only file system
  Logical volume "mail" created
[root@localhost ~]# mkfs -t ext3 /dev/mail_store/mail
……

  

  推薦步驟:   PV→VG→LV→格式化,掛載使用文件系統
[root@localhost ~]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created
[root@localhost ~]# pvcreate /dev/sdc
  Physical volume "/dev/sdc" successfully created
[root@localhost ~]# pvdisplay
  "/dev/sdb" is a new physical volume of "100.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb
  VG Name               
  PV Size               100.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               mBETMZ-d9Nh-AEr0-OyXO-h6N7-Dw2y-UqKAq4
   
  "/dev/sdc" is a new physical volume of "200.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdc
  VG Name               
  PV Size               200.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               vvp3Kg-UcbH-imNJ-Mwjl-asAz-5FM1-q8hj98
   
[root@localhost ~]# pvs
  PV         VG   Fmt  Attr PSize   PFree  
  /dev/sdb        lvm2 ---- 100.00g 100.00g
  /dev/sdc        lvm2 ---- 200.00g 200.00g
[root@localhost ~]# vgcreate mail_vg /dev/sdb
  Volume group "mail_vg" successfully created
[root@localhost ~]# vgdisplay
  --- Volume group ---
  VG Name               mail_vg
  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               100.00 GiB
  PE Size               4.00 MiB
  Total PE              25599
  Alloc PE / Size       0 / 0   
  Free  PE / Size       25599 / 100.00 GiB
  VG UUID               0HEnBL-7RV9-CkxU-dyD3-zAqB-ra0o-UkqxZF
   
[root@localhost ~]# lvcreate -L 150G -n mail_lv mail_vg
  Volume group "mail_vg" has insufficient free space (25599 extents): 38400 required.
[root@localhost ~]# lvcreate -L 50G -n mail_lv mail_vg
  Logical volume "mail_lv" created.
[root@localhost ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/mail_vg/mail_lv
  LV Name                mail_lv
  VG Name                mail_vg
  LV UUID                wgNvn6-WEJh-FfZA-TZAS-lfrC-gWed-nxMRzw
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2019-01-06 17:42:56 +0800
  LV Status              available
  # open                 0
  LV Size                50.00 GiB
  Current LE             12800
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
   
[root@localhost ~]# ll /dev/mail_vg/mail_lv 
lrwxrwxrwx. 1 root root 7 Jan  6 17:42 /dev/mail_vg/mail_lv -> ../dm-0
[root@localhost ~]# ll /dev/dm*
brw-rw----. 1 root disk 253, 0 Jan  6 17:42 /dev/dm-0
[root@localhost ~]# ll /dev/mapper/
total 0
crw-rw----. 1 root root 10, 58 Jan  6 17:35 control
lrwxrwxrwx. 1 root root      7 Jan  6 17:42 mail_vg-mail_lv -> ../dm-0
[root@localhost ~]# pvs
  PV         VG      Fmt  Attr PSize   PFree  
  /dev/sdb   mail_vg lvm2 a--u 100.00g  50.00g
  /dev/sdc           lvm2 ---- 200.00g 200.00g
[root@localhost ~]# vgs
  VG      #PV #LV #SN Attr   VSize   VFree 
  mail_vg   1   1   0 wz--n- 100.00g 50.00g
[root@localhost ~]# lvs
  LV      VG      Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  mail_lv mail_vg -wi-a----- 50.00g                                                    
[root@localhost ~]# mkfs.ext4 /dev/mapper/mail_vg-mail_lv 
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
3276800 inodes, 13107200 blocks
655360 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
400 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, 2654208, 
	4096000, 7962624, 11239424

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

This filesystem will be automatically checked every 29 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@localhost ~]# mkdir /mail
[root@localhost ~]# mount /dev/mail_vg/mail_lv /mail/
[root@localhost ~]# mount
/dev/sda3 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)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/mapper/mail_vg-mail_lv on /mail type ext4 (rw)

  

  設置開機實現自動掛載:   
[root@localhost ~]# blkid /dev/mapper/mail_vg-mail_lv
/dev/mapper/mail_vg-mail_lv: UUID="8ab67eeb-0b5a-43e3-b940-bef0f14bf1b1" TYPE="ext4" 
[root@localhost ~]# vim /etc/fstab


#
# /etc/fstab
# Created by anaconda on Fri Nov  2 22:37:22 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=c42ec363-df57-48b3-89a9-0685544602bd /                       ext4    defaults        1 1
UUID=27ab8d75-5b06-42e4-b0b4-0cb2376e9ea4 /boot                   ext4    defaults        1 2
UUID=b8bee5a5-ea40-476a-98c3-250707895638 swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
UUID=8ab67eeb-0b5a-43e3-b940-bef0f14bf1b1 /mail ext4  defaults 0 0
~                                                 

    設置完成保存退出