[Linux] Tìm hiểu LVM trong Linux

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 để

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

[[email protected] ~]# pvcreate /dev/sdb /dev/sdc /dev/sdd

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

[[email protected] ~]# 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:

[[email protected] ~]# 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:

[[email protected] ~]# vgcreate vg0 /dev/sdb /dev/sdc

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

[[email protected] ~]# 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:

[[email protected] ~]# 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:

[[email protected] ~]# lvcreate -n projects -L 10G vg0
Logical volume "projects" created.
[[email protected] ~]# 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:

[[email protected] ~]# 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:

[[email protected] ~]# 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:

[[email protected] ~]# 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:

[[email protected] ~]# mkdir /projects
[[email protected] ~]# mkdir /backups

Chạy lệnh sau để mount:

[[email protected] ~]# mount /dev/vg0/projects /projects/
[[email protected] ~]# mount /dev/vg0/backups /backups/

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

[[email protected] ~]# df -TH

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

[[email protected] ~]# 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

[[email protected] ~]# vgdisplay vg0

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

[[email protected] ~]# 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:

[[email protected] ~]# 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.
[[email protected] ~]# resize2fs /dev/vg0/projects
[[email protected] ~]# 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

Nguồn: viblo.asia

Bài viết liên quan

Thay đổi Package Name của Android Studio dể dàng với plugin APR

Nếu bạn đang gặp khó khăn hoặc bế tắc trong việc thay đổi package name trong And

Lỗi không Update Meta_Value Khi thay thế hình ảnh cũ bằng hình ảnh mới trong WordPress

Mã dưới đây hoạt động tốt có 1 lỗi không update được postmeta ” meta_key=

Bài 1 – React Native DevOps các khái niệm và các cài đặt căn bản

Hướng dẫn setup jenkins agent để bắt đầu build mobile bằng jenkins cho devloper an t

Chuyển đổi từ monolith sang microservices qua ví dụ

1. Why microservices? Microservices là kiến trúc hệ thống phần mềm hướng dịch vụ,