Tìm hiểu cách cấu hình LVM trong Linux qua hướng dẫn chi tiết và ví dụ cụ thể, giúp bạn nắm rõ các bước thiết lập, quản lý và tối ưu hóa không gian lưu trữ trên hệ thống Linux của bạn.
Logical Volume Manager (LVM) là một công cụ mạnh mẽ trong Linux giúp quản lý không gian lưu trữ một cách linh hoạt và hiệu quả. Việc cấu hình LVM cho phép bạn dễ dàng mở rộng hoặc thu hẹp các phân vùng lưu trữ, tạo ra một hệ thống lưu trữ có khả năng đáp ứng tốt hơn với các yêu cầu thay đổi. Trong bài viết này, chúng ta sẽ khám phá chi tiết cách cấu hình LVM trên Linux, kèm theo các ví dụ cụ thể để bạn có thể thực hành và áp dụng ngay lập tức.
1. LVM là gì?
LVM (Logical Volume Manager) là một công nghệ quản lý ổ đĩa logic trong hệ điều hành Linux. Nó cung cấp một lớp trừu tượng hóa giữa các ổ đĩa vật lý và các khối logic (logical volumes), cho phép quản lý linh hoạt và hiệu quả hơn.. Hiểu đơn giản là gom nhiều ổ cứng vật lý thành một ổ cứng ảo có dung lượng lớn hơn , trên ổ cứng ảo tạo ra các vùng lưu trữ để sử dụng.
Cấu trúc cơ bản của LVM bao gồm 3 thành phần:
- Physical Volumes (PVs): Đây là các ổ đĩa vật lý (hard disk, SSD, etc.) được sử dụng để tạo ra các logical volume.
- Volume Groups (VGs): Các PVs được nhóm lại thành các VGs, tạo thành một "bể" ổ cứng ảo.
- Logical Volumes (LVs): Các LVs là các ổ đĩa logic được tạo ra từ VGs. Các LVs có thể được mở rộng hoặc thu nhỏ linh hoạt.
2. Hướng dẫn cấu hình LVM trong hệ điều hành Linux
Để sử dụng LVM trong Linux, bạn cần thực hiện các bước sau:
Bước 1: Tạo các Physical Volumes (PVs)
Sử dụng lệnh pvcreate để tạo các PVs từ các ổ đĩa vật lý
ví dụ: pvcreate /dev/sdb /dev/sdc |
Liệt kê các physical volume(PV) mới được tạo, chạy như sau:
root@ubutu:~# pvs |
Ví dụ hiển thị như sau:
root@ubutu:~# pvs PV VG Fmt Attr PSize PFree /dev/sda3 ubuntu-vg lvm2 a-- 18.22g 8.22g /dev/sdb1 lvm2 --- 5.00g 5.00g /dev/sdc1 lvm2 --- 10.00g 10.00g /dev/sdd1 lvm2 --- 17.00g 17.00g |
Ý nghĩa của các trường trong PVS:
- PV: Đĩa được sử dụng
- pFree : Kích thước vật lý của đĩa
Xem thông tin chi tiết của physical volume (PV) sử dụng câu lệnh pvdisplay
Bước 2: Tạo Volume Group (VG)
Sử dụng lệnh vgcreate để tạo một VG từ các PVs
ví dụ: vgcreate vg0 /dev/sdb1 /dev/sdc1 /dev/sdd1 |
Bước 3: Tạo Logical Volume (LV)
Sử dụng lệnh lvcreate để tạo một LV từ VG
Ví dụ : lvcreate -n lg-test1 -L 10G vg0 hoặc lvcreate -n lg-backup -l 100%FREE vg0 |
Trong đó:
- -n : Sử dụng chỉ ra tên của logical volume cần tạo
- -L : sử dụng 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 Group
3. Ví dụ cụ thể
Bài toán đặt ra: Khi tăng kích thước của một ổ đĩa đang sử dụng, tôi cần làm sao lúc khởi động lại máy ảo thì tự động ổ đĩa vừa tăng vào sẽ gán vào luôn LVs có sẵn trong hệ điều hành.
Ví dụ: Khi tôi tăng disk từ 30GB lên 35 GB thì sau khi reboot thì LVs tự động nhận DISK trống |
Bước 1: Bước đầu tiên là tăng kích thước ổ đĩa mà hệ điều hành Linux của bạn sử dụng. Điều này có thể được thực hiện bằng cách mở rộng đĩa ảo trong các nền tảng ảo hóa như VMWare, KVM hoặc Hyper-V.
Bước 2: Thực hiện tạo script trong thư mục
vi /usr/local/bin/extend_lvm.sh chmod +x /usr/local/bin/extend_lvm.sh |
Chèn nội dung dưới vào extend_lvm.sh
#!/bin/bash growpart /dev/sda 3 pvresize /dev/sda3 lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv resize2fs /dev/ubuntu-vg/ubuntu-lv |
Giải thích:
- growpart /dev/sda 3 : Lệnh này mở rộng phân vùng ổ đĩa thứ 3 (/dev/sda3) để tận dụng dung lượng trống còn lại trên ổ đĩa vật lý (/dev/sda).
- pvresize /dev/sda3 : Sau khi mở rộng phân vùng, lệnh này cập nhật kích thước của Physical Volume (/dev/sda3) để LVM có thể sử dụng dung lượng mới.
- lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv:Lệnh này mở rộng kích thước của Logical Volume (ubuntu-lv) thuộc Volume Group (ubuntu-vg) để sử dụng toàn bộ dung lượng còn trống (+100%FREE) trong Volume Group.
- resize2fs /dev/ubuntu-vg/ubuntu-lv: Cuối cùng, lệnh này thực hiện việc mở rộng filesystem trên Logical Volume (ubuntu-lv) để hoàn tất quá trình mở rộng.
Bước 3: Thực hiện tạo file extend-lvm.service để khởi động cùng với hệ thống
sudo nano /etc/systemd/system/extend-lvm.service |
[Unit] Description=Extend LVM on Boot After=local-fs.target [Service] Type=oneshot ExecStart=/usr/local/bin/extend_lvm.sh RemainAfterExit=true [Install] WantedBy=multi-user.target |
Tiếp theo chạy câu lệnh dưới để khi khởi động có thể chạy.
sudo systemctl daemon-reload sudo systemctl enable extend-lvm.service sudo systemctl start extend-lvm.service |
Thực hiện sau khi reboot lại máy thì đã thấy disk thừa chuyển vào LVM
Tổng Kết
Đến đây chắc hẳn bạn đã hiểu rõ LVM là gì cũng như cách cấu hình LVM trong hệ điều hành Linux. Khi bạn cần tăng kích thước của một ổ đĩa đang sử dụng, việc khởi động lại máy ảo để tự động gán ổ đĩa vừa tăng vào các Logical Volumes (LVs) có sẵn trong hệ điều hành là điều quan trọng. Để đạt được điều này, bạn có thể thiết lập các cấu hình trong hệ điều hành để nhận diện và áp dụng kích thước mới của ổ đĩa một cách tự động khi khởi động lại máy ảo. Hãy liên hệ với chúng tôi để nhận được hướng dẫn chi tiết và hỗ trợ kỹ thuật từ các chuyên gia của SunCloud.
>>> Có thể bạn quan tâm: Hướng dẫn cài đặt và gỡ bỏ ứng dụng trên hệ điều hành Linux