LVM là gì? Hướng dẫn cấu hình LVM trong Linux và ví dụ cụ thể

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.
cấu hình LVM trong Linux

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. 

tăng kích thước ổ đĩa
Kiểm tra khi chưa thực hiện tạo script

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

Kiểm tra kết quả

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

Tác giả:
author avatar
Mình là Huy, hiện mình đang là kỹ sư hệ thống tại SunCloud. Mình có nhiều năm kinh nghiệm, kiến thức chuyên môn về mạng, hệ thống, điện toán mây và an ninh bảo mật. Mình đã triển khai và vận hành rất nhiều dự án thực tế cho doanh nghiệp, cơ quan. Mình đã đạt được một số chứng chỉ quốc tế như CCNP, LPI, VCP, đồng thời mình vẫn đang tiếp tục học tập để trau dồi kiến thức mỗi ngày. Mình rất yêu thích công nghệ, đam mê chia sẻ những kiến thức, thông tin hữu ích cho mọi người.

Tin tức nổi bật
Tin tức khác