[Linux] Tìm hiểu LVM trong Linux
Logical Volume Management (LVM) là một công nghệ quản lý các thiết bị lưu trữ trong Linux. Nó cho phép chia không gian đĩa cứng thành các logical volume, giúp dễ dàng thay đổi kích thước.
1. Tạo và quản lý LVM trong Linux
Có ba bước để tạo và quản lý LVM bằng các lệnh vgcreate, lvcreate và lvextend.
Trước khi thực hiện, hãy thêm 3 đĩa cứng vật lý sdb, sdc, sdd với dung lượng 10G.
2. Tạo Physical Volume
Sử dụng lệnh sau để tạo physical volume (PV) trên các đĩa /dev/sdb, /dev/sdc và /dev/sdd.
[root@localhost ~]# pvcreate /dev/sdb /dev/sdc /dev/sdd
Xem danh sách physical volume (PV) mới tạo:
[root@localhost ~]# pvs
Ý nghĩa các trường trong kết quả của lệnh pvs:
- PV: Đĩa được sử dụng
- PFree: Dung lượng đĩa vật lý (dung lượng PV)
Để biết thông tin chi tiết về từng physical volume (PV), sử dụng lệnh pvdisplay:
Hiển thị thông tin chi tiết về physical volume (PV) /dev/sdb:
[root@localhost ~]# pvdisplay /dev/sdb
Thực hiện tương tự cho /dev/sdc và /dev/sdd:
Lưu ý: Nếu trong quá trình tạo một volume có nhiều hơn một đĩa và một đĩa trong volume bị hỏng, volume đó sẽ bị hỏng hoàn toàn. Do đó, nên chạy LVM trên RAID hoặc sử dụng tính năng RAID của LVM để tránh mất dữ liệu.
3. Tạo Volume Group
Để tạo volume group với tên vg0 từ /dev/sdb và /dev/sdc, thực hiện như sau:
[root@localhost ~]# vgcreate vg0 /dev/sdb /dev/sdc
Hiển thị thông tin về 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 trong kết quả của 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à ghi dữ liệu
- VG Status: Volume Group có thể được thay đổi kích thước
- PE Size: Kích thước mở rộng cho đĩa (đượ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: Tổng dung lượng của Volume Group
- Alloc PE: Tổng PE đã được sử dụng
- Free PE: Tổng PE chưa được sử dụng
Kiểm tra số lượng physical volume (PV) được sử dụng trong volume group:
[root@localhost ~]# vgs
Trong kết quả, các trường có ý nghĩa:
- VG: Tên Volume Group
- PV: Physical Volume được sử dụng trong Volume Group
- VFree: Dung lượng trống có sẵn trong Volume Group
- VSize: Tổng dung lượng của Volume Group
- LV: Logical Volume trong volume group
- SN: Số lượng Snapshot của volume group
- Attr: Trạng thái của Volume Group (có thể đọc, ghi và thay đổi)
4. Tạo Logical Volume
Chúng ta sẽ tạo 2 logical volume có tên “projects” với dung lượng 10GB và “backups” sử dụng toàn bộ dung lượng còn lại của volume group. Sử dụng lệnh sau:
[root@localhost ~]# lvcreate -n projects -L 10G vg0
Logical volume “projects” đã được tạo.
[root@localhost ~]# lvcreate -n backups -l 100%FREE vg0
Logical volume “backups” đã được tạo.
Trong đó:
-n: Chỉ định tên của logical volume cần tạo.
-L: Chỉ định một dung lượng cố định.
-l: Chỉ định phần trăm của không gian còn lại trong volume group.
Hiển thị danh sách logical volume vừa được tạo:
[root@localhost ~]# lvs
Các trường trong kết quả của lệnh lvs có ý nghĩa:
- LV: Tên logical volume
- %Data: Phần trăm dung lượng của 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 tăng và giảm kích thước của mỗi logical volume (file system xfs chỉ cho phép tăng kích thước). Sử dụng lệnh sau để tạo file system:
[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 dung lượng 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:
Tạo các thư mục gắn kết:
[root@localhost ~]# mkdir /projects
[root@localhost ~]# mkdir /backups
Mount logical volume:
[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” được mở rộng thành công
Kiểm tra trước và sau khi thực hiện lệnh vgextend vg0 /dev/sdd, bạn sẽ thấy kích thước của volume group (VG) đã được tăng:
Trước khi thực hiện lệnh vgextend vg0 /dev/sdd
[root@localhost ~]# vgdisplay vg0
Sau khi chạy lệnh vgextend vg0 /dev/sdd
[root@localhost ~]# vgdisplay vg0
Sau đó, chúng ta cần thay đổi kích thước hệ thống tệp. Sử dụng lệnh sau:
- Đối với file system (ext2, ext3, ext4): resize2fs
- Đối với file system (xfs): xfs_growfs
[root@localhost ~]# resize2fs /dev/vg0/projects
[root@localhost ~]# df -TH
Vậy là qua bài viết này, bạn đã hiểu LVM trong Linux là gì. Chúc bạn thành công!
Tham khảo: Tìm hiểu LVM trong Linux