Lvm linux là gì

Giới thiệu về LVM (Logical Volume Manager)

LVM là một công cụ để quản lý phân vùng logic được tạo và phân bổ từ các ổ đĩa vật lý. Với LVM bạn có thể dễ dàng tạo mới, thay đổi kích thước hoặc xóa bỏ phân vùng đã tạo.

LVM được sử dụng cho các mục đích sau

  • Tạo 1 hoặc nhiều phần vùng logic hoặc phân vùng với toàn bộ đĩa cứng (hơi giống với RAID 0, nhưng tương tự như JBOD), cho phép thay đổi kích thước volume.
  • Quản lý trang trại đĩa cứng lớn (Large hard Disk Farms) bằng cách cho phép thêm và thay thế đĩa mà không bị ngừng hoạt động hoặc gián đoạn dịch vụ, kết hợp với trao đổi nóng (hot swapping).
  • Trên các hệ thống nhỏ (như máy tính để bàn), thay vì phải ước tính thời gian cài đặt, phân vùng có thể cần lớn đến mức nào, LVM cho phép các hệ thống tệp dễ dàng thay đổi kích thước khi cần.
  • Thực hiện sao lưu nhất quán bằng cách tạo snapshot nhanh các khối một cách hợp lý.
  • Mã hóa nhiều phân vùng vật lý bằng một mật khẩu.

Mô hình Logical Volume Manager

Lvm linux là gì

Physical Volumes

Một ổ đĩa vật lý có thể phân chia thành nhiều phân vùng vật lý gọi là Physical Volumes.

Volume Group

Là một nhóm bao gồm nhiều Physical Volume trên 1 hoặc nhiều ổ đĩa khác nhau được kết hợp lại thành một Volume Group

Lvm linux là gì

Logical Volume

Một Volume Group được chia nhỏ thành nhiều Logical Volume. Nó được dùng cho các để mount tới hệ thống tập tin (File System) và được format với những chuẩn định dạng khác nhau như ext2, ext3, ext4…

Lvm linux là gì

File Systems

Hệ thống tập tin quản lý các file và thư mục trên ổ đĩa, được mount tới các Logical Volume trong mô hình LVM

Tạo vào quản lý Logical Volume Manager

Tạo Logical Volume Manager

Tiền đề tạo LVM trong môi trường Linux RHEL 7

Bước 1: Tạo physical Volume

$ pvcreate /dev/sdd
Physical volume "/dev/sdd" successfully created.

Bước 2: Tạo volume group

$ vgcreate new_vol_group /dev/sdd
Volume group "new_vol_group" successfully created

Bước 3: Tạo Logical Volume

$ lvcreate -L 3G -n new_logical_volume new_vol_group
Logical volume "new_logical_volume" created.

Bước 4: Tạo file system cho Logical Volume

$ mkfs.ext3 /dev/new_vol_group/new_logical_volume
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
196608 inodes, 786432 blocks
39321 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=805306368
24 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912

Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

Bước 5: Mount Logical Volume

$ mkdir /var/vinasupport/
$ mount /dev/new_vol_group/new_logical_volume /var/vinasupport/

Quản lý Logical Volume Manager

Tăng và giảm kích thước Logical Volume

VD: Tăng kích thước Logical Volume lên thêm 5GB

$ lvextend -L +5G /dev/new_vol_group/new_logical_volume
$ resize2fs /dev/new_vol_group/new_logical_volume

Xóa Logical Volume

$ umount /dev/new_vol_group/new_logical_volume
$ lvremove /dev/new_vol_group/new_logical_volume

Xóa Logical Volume Group

$ vgremove /dev/new_vol_group

Xóa Physical Volume 

$ pvremove /dev/sdd

Tài liệu tham khảo: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/deployment_guide/ch-lvm

Nguồn: vinasupport.com

Giới thiệu về LVM

Logical Volume Management(LVM) dùng quản lí các thiết bị lưu trữ. LVM là một tiện ích cho phép chia không gian đĩa cứng thành những Logical Volume từ đó giúp cho việc thay đổi kích thước trở nên dễ dàng.

1. Tạo và quản lý LVM trong Linux

Các bước để quản lý và tạo LVM bằng các lệnh vgcreate, lvcreatelvextend

Chuẩn bị: add thêm 3 đĩa cứng vật lí sdb, sdc, sdd dung lượng 10G

2. Tạo Physical Volume

Chạy lệnh sau để tạo physical volume(PV) trên /dev/sdb, /dev/sdc, và /dev/sdd

[root@localhost ~]# pvcreate /dev/sdb /dev/sdc /dev/sdd

Liệt kê các physical volume(PV) mới được tạo, chạy như sau:

[root@localhost ~]# pvs

Ý nghĩa các trường của pvs:

  • PV: Đĩa được sử dụng
  • PFree: Kích thước đĩa vật lý (Kích thước PV)

Để có được thông tin chi tiết về mỗi physical volume(PV), sử dụng lệnh sau: pvdisplay

Xem thông tin chi tiết về physical volume(PV) /dev/sdb. Chúng ta thực hiện như sau:

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

Tương tự cho /dev/sdc/dev/sdd:

Lưu ý: Nếu chúng ta có 2 ổ đĩa hay nhiều ổ đĩa để tạo một volume mà một đĩa ở volume bị mất thì dẫn tới volume đó mất luôn, vì thế phải chạy LVM trên RAID hoặc dùng tính năng RAID của LVM để có khả năng dung lỗi.

3.Tạo Volume Group

Để tạo volume group với tên vg0 bằng cách sử dụng /dev/sdb và /dev/sdc. Chúng ta thực hiện như sau:

[root@localhost ~]# vgcreate vg0 /dev/sdb /dev/sdc

Xem thông tin volume group vừa tạo:

[root@localhost ~]# vgdisplay vg0

Vì vg0 chứa hai đĩa 10GB nên VG Size = 19.99GB

Ý nghĩa các thông tin của Volume group khi chạy lệnh vgdisplay:

  • VG Name: Tên Volume Group.
  • Format: Kiến trúc LVM được sử dụng.
  • VG Access: Volume Group có thể đọc và viết và sẵn sàng để sử dụng.
  • VG Status: Volume Group có thể được định cỡ lại, chúng ta có thể mở rộng thêm nếu cần thêm dung lượng.
  • PE Size: Mở rộng Physical, Kích thước cho đĩa có thể được xác định bằng kích thước PE hoặc GB, 4MB là kích thước PE mặc định của LVM
  • Total PE: Dung lượng Volume Group có
  • Alloc PE: Tổng PE đã sử dụng
  • Free PE: Tổng PE chưa được sử dụng

Kiểm tra số lượng physical volume(PV) dùng để tạo volume group như sau:

[root@localhost ~]# vgs

Trong đó:

  • VG: Tên Volume Group
  • PV: Physical Volume sử dụng trong Volume Group
  • VFree: Hiển thị không gian trống có sẵn trong Volume Group
  • VSize: Tổng kích thước của Volume Group
  • LV: Logical Volume nằm trong volume group
  • SN: Số lượng Snapshot của volume group
  • Attr: Trạng thái của Volume group có thể ghi, có thể đọc, có thể thay đổi,

4. Tạo Logical Volume

Chúng ta sẽ tạo 2 logical volume với tên projects có dung lượng là 10GB và backups sử dụng toàn bộ dung lượng còn lại của volume group. Chúng ta chạy lệnh sau:

[root@localhost ~]# lvcreate -n projects -L 10G vg0
Logical volume "projects" created.
[root@localhost ~]# lvcreate -n backups -l 100%FREE vg0

Logical volume "backups" created. Trong đó:

-n: Sử dụng chỉ ra tên của logical volume cần tạo.

-L: Sử dụng chỉ một kích thước cố định.

-l: Sử dụng chỉ phần trăm của không gian còn lại trong volume group.

Xem danh sách logical volume vừa được tạo:

[root@localhost ~]# lvs

Ý nghĩa các trường của lvs:

  • LV: Tên logical volume
  • %Data: Phần trăm dung lượng logical volume được sử dụng
  • Lsize: Kích thước của logical volume

Hiển thị thông tin chi tiết của các logical volume:

[root@localhost ~]# lvdisplay vg0/projects

Chúng ta sẽ sử dụng file system ext4 vì nó cho phép chúng ta tăng và giảm kích thước của mỗi logical volume (với file system xfs chỉ cho phép tăng kích thước). Chúng ta thực hiện như sau:

[root@localhost ~]# mkfs.ext4 /dev/vg0/projects

Mở rộng Volume Group và thay đổi kích thước các Logical Volume

Trong ví dụ dưới đây chúng ta sẽ thêm một physical volume có tên /dev/sdd với kích thước 10GB vào volume group vg0, sau đó chúng ta sẽ tăng kích thước của logical volume /projects lên 10GB thực hiện như sau:

Chạy các lệnh sau để tạo nơi lưu trữ gắn kết:

[root@localhost ~]# mkdir /projects
[root@localhost ~]# mkdir /backups

Chạy lệnh sau để mount:

[root@localhost ~]# mount /dev/vg0/projects /projects/
[root@localhost ~]# mount /dev/vg0/backups /backups/

Kiểm tra sử dụng không gian đĩa hệ thống tập tin:

[root@localhost ~]# df -TH

Sử dụng lệnh sau để thêm /dev/sdd vào volume group vg0:

[root@localhost ~]# vgextend vg0 /dev/sdd

Volume group “vg0” successfully extended

Chúng ta chạy lệnh vgdisplay vg0 trước và sau khi thực hiện lệnh vgextend vg0 /dev/sdd, bạn sẽ thấy sự tăng kích thước của volume group(VG):

Trước khi chạy lệnh vgextend vg0 /dev/sdd

[root@localhost ~]# vgdisplay vg0

Sau khi chạy lệnh vgextend vg0 /dev/sdd

[root@localhost ~]# vgdisplay vg0

Qua lệnh kiểm tra trên chúng ta thấy dung lượng thêm vào của chúng ta là 10GB chúng ta có thể tăng kích thước của logical volume /projects lên 10GB thực hiện như sau:

[root@localhost ~]# lvextend -l +2000 /dev/vg0/projects

Sau khi chạy lệnh trên chúng ta cần thay đổi kích thước hệ thống tệp, vì thế chúng ta phải chạy lệnh sau để resize:

  • Đối với file system (ext2, ext3, ext 4): resize2fs.
  • Đối với file system (xfs): xfs_growfs.
[root@localhost ~]# resize2fs /dev/vg0/projects
[root@localhost ~]# df -TH

Lời kết

Như vậy là qua bài giới thiệu này các bạn hiểu LVM tong Linux là gì rồi. Chúc các bạn thành công.!

Tham khảo: Tìm hiểu LVM trong Linux