Giới thiệu về các khái niệm, thuật ngữ và hoạt động LVM
LVM , hay Quản lý dung lượng hợp lý, là một công nghệ quản lý thiết bị lưu trữ cung cấp cho user khả năng tổng hợp và tóm tắt bố cục vật lý của các thiết bị lưu trữ thành phần để quản trị linh hoạt và dễ dàng hơn. Sử dụng framework kernel Linux thiết bị ánh xạ, bản lặp hiện tại, LVM2, được dùng để tập hợp các thiết bị lưu trữ hiện có thành group và phân bổ các đơn vị logic từ không gian kết hợp khi cần thiết.Những ưu điểm chính của LVM là tăng tính trừu tượng, tính linh hoạt và khả năng kiểm soát. Dung lượng logic có thể có tên có ý nghĩa như “cơ sở dữ liệu” hoặc “ backup root ”. Dung lượng có thể được thay đổi kích thước động khi các yêu cầu về dung lượng thay đổi và được di chuyển giữa các thiết bị vật lý trong group trên hệ thống đang chạy hoặc xuất dễ dàng. LVM cũng cung cấp các tính năng nâng cao như chụp nhanh, phân dải và phản chiếu.
Trong hướng dẫn này, ta sẽ thảo luận ngắn gọn về cách LVM hoạt động và sau đó trình bày các lệnh cơ bản cần thiết để cài đặt và chạy nhanh chóng.
Kiến trúc và thuật ngữ LVM
Trước khi ta đi sâu vào các lệnh quản trị LVM thực tế, điều quan trọng là phải hiểu cơ bản về cách LVM tổ chức các thiết bị lưu trữ và một số thuật ngữ mà LVM sử dụng.
Cấu trúc quản lý lưu trữ LVM
LVM hoạt động bằng cách phân lớp trừu tượng trên các thiết bị lưu trữ vật lý. Các lớp cơ bản mà LVM sử dụng, bắt đầu với lớp nguyên thủy nhất, là.
- Dung lượng vật lý :
- Tiền tố tiện ích LVM :
pv...
- Mô tả : Các thiết bị khối vật lý hoặc các thiết bị giống đĩa khác (ví dụ: các thiết bị khác được tạo bởi trình ánh xạ thiết bị, như mảng RAID) được LVM sử dụng làm vật liệu xây dựng thô cho các mức trừu tượng cao hơn. Dung lượng vật lý là thiết bị lưu trữ thông thường. LVM ghi một tiêu đề vào thiết bị để cấp phát cho thiết bị quản lý.
- Tiền tố tiện ích LVM :
- Group âm lượng :
- Tiền tố tiện ích LVM :
vg...
- Mô tả : LVM kết hợp các dung lượng vật lý thành các vùng lưu trữ được gọi là group dung lượng . Các group dung lượng tóm tắt các đặc điểm của các thiết bị bên dưới và hoạt động như một thiết bị logic thống nhất với khả năng lưu trữ kết hợp của các khối vật lý thành phần.
- Tiền tố tiện ích LVM :
- Dung lượng lôgic :
- Tiền tố tiện ích LVM :
lv...
(các tiện ích LVM chung có thể bắt đầu bằnglvm...
) - Mô tả : Một group dung lượng có thể được chia thành bất kỳ số lượng dung lượng hợp lý nào. Dung lượng logic tương đương về mặt chức năng với các phân vùng trên đĩa vật lý, nhưng linh hoạt hơn nhiều. Dung lượng logic là thành phần chính mà user và ứng dụng sẽ tương tác với nhau.
- Tiền tố tiện ích LVM :
Tóm lại, LVM được dùng để kết hợp các dung lượng vật lý thành các group dung lượng nhằm thống nhất không gian lưu trữ có sẵn trên một hệ thống. Sau đó, administrator có thể phân đoạn group dung lượng thành các dung lượng hợp lý tùy ý, hoạt động như các phân vùng linh hoạt.
Mức độ là gì?
Mỗi dung lượng trong một group dung lượng được phân đoạn thành các phần nhỏ, kích thước cố định được gọi là phần mở rộng . Kích thước của phạm vi được xác định bởi group dung lượng (tất cả các dung lượng trong group đều tuân theo cùng một kích thước phạm vi).
Các phạm vi trên một tập vật lý được gọi là phạm vi vật lý , trong khi các phạm vi của một tập hợp lý được gọi là phạm vi logic . Một tập hợp lý chỉ đơn giản là một ánh xạ mà LVM duy trì giữa các phạm vi lôgic và vật lý. Do mối quan hệ này, kích thước phạm vi đại diện cho lượng không gian nhỏ nhất có thể được phân bổ bởi LVM.
Các mức độ đằng sau phần lớn tính linh hoạt và sức mạnh của LVM. Các phạm vi logic được LVM trình bày như một thiết bị thống nhất không phải ánh xạ đến các phạm vi vật lý liên tục. LVM có thể sao chép và tổ chức lại các phạm vi vật lý tạo nên một tập hợp lý mà không có bất kỳ sự gián đoạn nào đối với user . Các tập hợp lý cũng có thể dễ dàng mở rộng hoặc thu nhỏ bằng cách chỉ cần thêm các khoảng mở rộng vào hoặc xóa các phạm vi khỏi tập.
Trường hợp sử dụng đơn giản
Đến đây bạn đã quen với một số thuật ngữ và cấu trúc mà LVM sử dụng, ta có thể khám phá một số cách phổ biến để sử dụng LVM. Ta sẽ bắt đầu bằng cách đi qua một quy trình cơ bản sẽ sử dụng hai đĩa vật lý để tạo thành bốn tập hợp lý.
Đánh dấu các thiết bị vật lý là dung lượng vật lý
Bước đầu tiên của ta là quét hệ thống để tìm các thiết bị khối mà LVM có thể nhìn thấy và quản lý. Bạn có thể thực hiện việc này bằng lệnh :
- sudo lvmdiskscan
Đầu ra sẽ hiển thị tất cả các thiết bị khối có sẵn mà LVM có thể tương tác với:
Output /dev/ram0 [ 64.00 MiB] /dev/sda [ 200.00 GiB] /dev/ram1 [ 64.00 MiB] . . . /dev/ram15 [ 64.00 MiB] /dev/sdb [ 100.00 GiB] 2 disks 17 partitions 0 LVM physical volume whole disks 0 LVM physical volumes
Từ kết quả trên, ta có thể thấy rằng hiện tại có hai đĩa và 17 phân vùng. Các phân vùng chủ yếu là phân vùng /dev/ram*
được sử dụng hệ thống như một đĩa Ram để nâng cao hiệu suất. Các đĩa trong ví dụ này là /dev/sda
, có 200G dung lượng và /dev/sdb
, có 100G.
Cảnh báo : Đảm bảo rằng bạn kiểm tra kỹ đảm bảo rằng các thiết bị bạn định sử dụng với LVM không có bất kỳ dữ liệu quan trọng nào đã được ghi vào chúng. Việc sử dụng các thiết bị này trong LVM sẽ overrides lên nội dung hiện tại. Nếu bạn đã có dữ liệu quan trọng trên server của bạn , hãy backup trước khi tiếp tục.
Bây giờ ta đã biết các thiết bị vật lý mà ta muốn sử dụng, ta có thể đánh dấu chúng dưới dạng ổ đĩa vật lý trong LVM bằng lệnh pvcreate
:
- sudo pvcreate /dev/sda /dev/sdb
Output Physical volume "/dev/sda" successfully created Physical volume "/dev/sdb" successfully created
Điều này sẽ ghi một tiêu đề LVM vào các thiết bị để cho biết rằng chúng đã sẵn sàng để được thêm vào một group âm lượng.
Bạn có thể nhanh chóng xác minh LVM đã đăng ký các ổ đĩa vật lý bằng lệnh :
- sudo pvs
Output PV VG Fmt Attr PSize PFree /dev/sda lvm2 --- 200.00g 200.00g /dev/sdb lvm2 --- 100.00g 100.00g
Như bạn thấy , cả hai thiết bị đều nằm dưới cột PV
, viết tắt của dung lượng vật lý.
Thêm các dung lượng vật lý vào một group dung lượng
Bây giờ ta đã tạo dung lượng vật lý từ thiết bị của bạn , ta có thể tạo một group dung lượng . Ta sẽ phải chọn một tên cho group âm lượng, ta sẽ giữ nguyên tên chung. Hầu hết thời gian, bạn sẽ chỉ có một group dung lượng duy nhất cho mỗi hệ thống để có sự linh hoạt tối đa trong việc phân bổ. Ta sẽ gọi group dung lượng của ta là LVMVolGroup
cho đơn giản.
Để tạo group dung lượng và thêm cả hai dung lượng vật lý của ta vào nó trong một lệnh duy nhất, hãy nhập:
- sudo vgcreate LVMVolGroup /dev/sda /dev/sdb
Output Volume group "LVMVolGroup" successfully created
Nếu ta kiểm tra lại kết quả pvs
, ta có thể thấy rằng các dung lượng vật lý của ta hiện được liên kết với group dung lượng mới:
- sudo pvs
Output PV VG Fmt Attr PSize PFree /dev/sda LVMVolGroup lvm2 a-- 200.00g 200.00g /dev/sdb LVMVolGroup lvm2 a-- 100.00g 100.00g
Ta có thể xem tóm tắt ngắn gọn về chính group dung lượng bằng lệnh :
- sudo vgs
Output VG #PV #LV #SN Attr VSize VFree LVMVolGroup 2 0 0 wz--n- 299.99g 299.99g
Như bạn thấy , group dung lượng của ta hiện có hai dung lượng vật lý, dung lượng logic bằng không và có dung lượng kết hợp của các thiết bị bên dưới.
Tạo dung lượng logic từ group dung lượng
Bây giờ ta có một group dung lượng có sẵn, ta có thể sử dụng nó như một group mà ta có thể phân bổ dung lượng hợp lý. Không giống như phân vùng thông thường, khi làm việc với các tập hợp lý, bạn không cần phải biết cách bố trí của tập vì LVM lập bản đồ và xử lý việc này cho bạn. Bạn chỉ cần cung cấp kích thước của dung lượng và tên.
Ta sẽ tạo bốn tập hợp lý riêng biệt trong group tập của ta :
- 10G dung lượng "dự án"
- Dung lượng 5G “www” cho nội dung web
- 20G dung lượng “db” cho database
- Vùng "không gian làm việc" sẽ lấp đầy không gian còn lại
Để tạo dung lượng hợp lý, ta sử dụng lệnh lvcreate
. Ta phải vượt qua trong group âm lượng để lấy từ và có thể đặt tên cho tập hợp lý với tùy chọn -n
. Để chỉ định kích thước trực tiếp, bạn có thể sử dụng tùy chọn -L
. Thay vào đó, nếu bạn muốn chỉ định kích thước về số lượng vùng, bạn có thể sử dụng tùy chọn -l
.
Ta có thể tạo ba tập hợp lý đầu tiên với tùy chọn -L
như sau:
- sudo lvcreate -L 10G -n projects LVMVolGroup
- sudo lvcreate -L 5G -n www LVMVolGroup
- sudo lvcreate -L 20G -n db LVMVolGroup
Output Logical volume "projects" created. Logical volume "www" created. Logical volume "db" created.
Ta có thể thấy các dung lượng hợp lý và mối quan hệ của chúng với group dung lượng bằng cách chọn kết quả tùy chỉnh từ lệnh vgs
:
- sudo vgs -o +lv_size,lv_name
Output VG #PV #LV #SN Attr VSize VFree LSize LV LVMVolGroup 2 3 0 wz--n- 299.99g 264.99g 10.00g projects LVMVolGroup 2 3 0 wz--n- 299.99g 264.99g 5.00g www LVMVolGroup 2 3 0 wz--n- 299.99g 264.99g 20.00g db
Ta đã thêm hai cột kết quả cuối cùng để ta có thể thấy không gian được phân bổ cho các tập hợp lý của ta .
Bây giờ, ta có thể phân bổ phần còn lại của không gian trong group dung lượng cho dung lượng “không gian làm việc” bằng cách sử dụng cờ -l
, hoạt động theo phạm vi. Ta cũng có thể cung cấp tỷ lệ phần trăm và đơn vị để truyền đạt ý định của bạn tốt hơn. Trong trường hợp của ta , ta muốn phân bổ dung lượng trống còn lại, vì vậy ta có thể chuyển 100%FREE
:
- sudo lvcreate -l 100%FREE -n workspace LVMVolGroup
Output Logical volume "workspace" created.
Nếu ta kiểm tra lại thông tin group dung lượng , ta có thể thấy rằng ta đã sử dụng hết dung lượng còn trống:
- sudo vgs -o +lv_size,lv_name
Output VG #PV #LV #SN Attr VSize VFree LSize LV LVMVolGroup 2 4 0 wz--n- 299.99g 0 10.00g projects LVMVolGroup 2 4 0 wz--n- 299.99g 0 5.00g www LVMVolGroup 2 4 0 wz--n- 299.99g 0 20.00g db LVMVolGroup 2 4 0 wz--n- 299.99g 0 264.99g workspace
Như bạn thấy , dung lượng “không gian làm việc” đã được tạo và group dung lượng “LVMVolGroup” được cấp phát hoàn toàn.
Định dạng và mount các tập logic
Bây giờ ta đã có dung lượng logic, ta có thể sử dụng chúng như các thiết bị khối bình thường.
Các thiết bị logic có sẵn trong folder /dev
giống như các thiết bị lưu trữ khác. Bạn có thể truy cập chúng ở hai nơi:
-
/dev/ volume_group_name / logical_volume_name
-
/dev/mapper/ volume_group_name - logical_volume_name
Vì vậy, để định dạng bốn tập hợp lý của ta với hệ thống file Ext4, ta có thể nhập:
- sudo mkfs.ext4 /dev/LVMVolGroup/projects
- sudo mkfs.ext4 /dev/LVMVolGroup/www
- sudo mkfs.ext4 /dev/LVMVolGroup/db
- sudo mkfs.ext4 /dev/LVMVolGroup/workspace
Hoặc ta có thể gõ:
- sudo mkfs.ext4 /dev/mapper/LVMVolGroup-projects
- sudo mkfs.ext4 /dev/mapper/LVMVolGroup-www
- sudo mkfs.ext4 /dev/mapper/LVMVolGroup-db
- sudo mkfs.ext4 /dev/mapper/LVMVolGroup-workspace
Sau khi định dạng, ta có thể tạo các điểm mount :
- sudo mkdir -p /mnt/{projects,www,db,workspace}
Sau đó, ta có thể gắn các tập hợp lý vào vị trí thích hợp:
- sudo mount /dev/LVMVolGroup/projects /mnt/projects
- sudo mount /dev/LVMVolGroup/www /mnt/www
- sudo mount /dev/LVMVolGroup/db /mnt/db
- sudo mount /dev/LVMVolGroup/workspace /mnt/workspace
Để làm cho mount bền vững, hãy thêm chúng vào /etc/fstab
giống như bạn làm với các thiết bị khối thông thường:
- sudo nano /etc/fstab
. . . /dev/LVMVolGroup/projects /mnt/projects ext4 defaults,nofail 0 0 /dev/LVMVolGroup/www /mnt/www ext4 defaults,nofail 0 0 /dev/LVMVolGroup/db /mnt/db ext4 defaults,nofail 0 0 /dev/LVMVolGroup/workspace /mnt/workspace ext4 defaults,nofail 0 0
Hệ điều hành bây giờ sẽ tự động mount dung lượng logic LVM khi khởi động.
Kết luận
Hy vọng rằng đến đây, bạn đã hiểu khá rõ về các thành phần khác nhau mà LVM quản lý để tạo ra một hệ thống lưu trữ linh hoạt. Bạn cũng nên có hiểu biết cơ bản về cách chạy thiết bị lưu trữ trong cài đặt LVM.
Hướng dẫn này chỉ đề cập ngắn gọn đến sức mạnh và quyền kiểm soát mà LVM cung cấp cho các administrator hệ thống Linux. Để tìm hiểu thêm về cách làm việc với LVM, hãy xem hướng dẫn sử dụng LVM với Ubuntu 16.04 của ta .
Các tin liên quan