Linux管理磁盤及LVM管理

 

LVM是Linux系統中對磁盤分區進行管理的一種邏輯機制,它是創建在硬盤和分區之上,文件系統之下的一個邏輯層,在創建文件系統時屏蔽下層的磁盤分區佈局,可以保持現有數據不變的狀況下動態調整磁盤容量,提升磁盤靈活性bash

 

在虛擬機中安裝一塊新硬盤,大小爲8Gapp

fdisk -l 識別系統中的磁盤設備ide

[root@localhost ~]# fdisk -l
Disk /dev/sda: 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: 0x000b85f2
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64        2611    20458496   8e  Linux LVM
Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 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: 0x00000000

而後對新硬盤設備/dev/sdb進行分區,設置大小並更改分區類型爲LVM工具

[root@localhost ~]# fdisk /dev/sdb
...

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1044, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1044, default 1044): +2G
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e   
Changed system type of partition 1 to 8e (Linux LVM)

新建兩個分區並查看分區狀況佈局

Command (m for help): p
Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 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: 0xa5851005
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         262     2104483+  8e  Linux LVM
/dev/sdb2             263         524     2104515   8e  Linux LVM

w命令保存退出fdisk分區工具code

變動硬盤的分區設置後,建議將系統重啓,或者執行partprobe命令獲取新的分區狀況ci

[root@localhost ~]# partprobe /dev/sdb

創建pv、vg、lv。將lv空間大小設置爲3G,經過pvdisplay、vgdisplay、lvdisplay查看詳細信息虛擬機

[root@localhost ~]# pvcreate /dev/sdb1 /dev/sdb2
  Physical volume "/dev/sdb1" successfully created
  Physical volume "/dev/sdb2" successfully created
[root@localhost ~]# vgcreate vg_xb /dev/sdb1 /dev/sdb2
  Volume group "vg_xb" successfully created
[root@localhost ~]# lvcreate -L 3G -n lv_xb vg_xb
  Logical volume "lv_xb" created.

建立文件系統(將lv空間格式化)it

[root@localhost ~]# mkfs.ext3 /dev/vg_xb/lv_xb

掛載文件系統,新建一個文件夾xb,將設備文件掛載到此目錄中io

[root@localhost ~]# mkdir /xb
[root@localhost ~]# mount /dev/vg_xb/lv_xb /xb/

查看系統中掛載各文件系統的磁盤使用狀況,能夠看到新建的lv空間大小爲3G

[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       18G  2.5G   15G  15% /
tmpfs                 364M     0  364M   0% /dev/shm
/dev/sda1             477M   36M  416M   8% /boot
/dev/mapper/vg_xb-lv_xb
                      3.0G   69M  2.8G   3% /xb

然而當邏輯卷空間不足時,還須要從所在卷組中分割額外的空間給邏輯卷,前提是該卷組中有還沒有分配的空間不然先擴展卷組容量

此時,咱們lv的大小爲3G,vg大小爲4G,當咱們lv空間不足須要擴展時,能夠從vg剩餘部分中分割一部分給lv使用

◆想要增長lv空間的大小,先卸載文件系統,並使用e2fsck命令檢查文件系統的正確性

[root@localhost ~]# umount /xb/
[root@localhost ~]# e2fsck -f /dev/vg_xb/lv_xb

增長lv空間,增長300M,用lvdisplay查看lv大小變爲3.3G

[root@localhost ~]# lvextend -L +300M /dev/vg_xb/lv_xb

從新識別文件系統的大小

[root@localhost ~]# resize2fs /dev/vg_xb/lv_xb

最後使用mount從新掛載文件系統,使用df -h命令顯示文件系統的大小爲3.3G

 

◆當lv空間須要縮減時,也須要先卸載文件系統並檢查文件系統的正確性

而後先縮減文件系統也就是格式化後的可用空間的大小

將文件系統的大小減少到2G

[root@localhost ~]# resize2fs /dev/vg_xb/lv_xb 2G
 
而後再減少lv的空間,減少1G
[root@localhost ~]# lvreduce -L -1G /dev/vg_xb/lv_xb 
  WARNING: Reducing active logical volume to 2.29 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv_xb? [y/n]: y
  Size of logical volume vg_xb/lv_xb changed from 3.29 GiB (843 extents) to 2.29 GiB (587 extents).
  Logical volume lv_xb successfully resized

從新掛載文件系統

查看文件系統的大小和lv空間的大小,此時文件系統大小爲2G,lv空間大小爲3G

注意:

縮小後的lv空間容量必須大於等於文件系統的容量,不然會致使數據丟失。

縮小後的lv空間必須比已用空間大才能保證數據不會丟失

相關文章
相關標籤/搜索