18/09/2018, 16:43

Giới thiệu về khái niệm, thuật ngữ và hoạt động của LVM

Giới thiệu LVM , hoặc Quản lý khối lượng hợp lý, là công nghệ quản lý thiết bị lưu trữ cung cấp cho người dùng sức mạnh để nhóm và trừu tượng bố cục vật lý của thiết bị lưu trữ thành phần để quản trị dễ dàng và linh hoạt hơn. Bằng cách sử dụng khung công tác nhân Linux của trình ánh xạ thiết bị, ...

Giới thiệu

LVM, hoặc Quản lý khối lượng hợp lý, là công nghệ quản lý thiết bị lưu trữ cung cấp cho người dùng sức mạnh để nhóm và trừu tượng bố cục vật lý của thiết bị lưu trữ thành phần để quản trị dễ dàng và linh hoạt hơn. Bằng cách sử dụng khung công tác nhân Linux của trình ánh xạ thiết bị, phép lặp hiện tại, LVM2, có thể được sử dụng để thu thập các thiết bị lưu trữ hiện có thành các nhóm và phân bổ các đơn vị logic từ không gian kết hợp khi cần thiết.

Ưu điểm chính của LVM là tăng cường sự trừu tượng, tính linh hoạt và kiểm soát. Khối lượng hợp lý có thể có các tên có ý nghĩa như "cơ sở dữ liệu" hoặc "sao lưu gốc". Khối lượng có thể được thay đổi kích thước động như yêu cầu không gian thay đổi và di chuyển giữa các thiết bị vật lý trong hồ bơi trên một hệ thống đang chạy hoặc xuất khẩu dễ dàng. LVM cũng cung cấp các tính năng nâng cao như snapshotting, striping, và mirroring.

Trong hướng dẫn này, chúng tôi 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 để thiết lập và chạy nhanh.

Kiến trúc và thuật ngữ LVM

Trước khi chúng 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 có một sự hiểu biết 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à nó sử dụng.

Cấu trúc quản lý lưu trữ LVM

Chức năng LVM 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 nguyên thủy nhất, là.

  • Khối lượng vật lý:
    • Tiền tố tiện ích LVM: pv...
    • Sự miêu 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 mức trừu tượng cao hơn. Khối lượng vật lý là các thiết bị lưu trữ thông thường. LVM viết tiêu đề cho thiết bị để cấp phát cho quản lý.
  • Nhóm Khối lượng:
    • Tiền tố tiện ích LVM: vg...
    • Sự miêu tả: LVM kết hợp khối lượng vật lý vào các bể chứa được gọi là các nhóm khối lượng. Các nhóm khối lượng trừu tượng các đặc điểm của các thiết bị cơ bản và chức năng như một thiết bị hợp nhất hợp nhất với dung lượng lưu trữ kết hợp của khối lượng vật lý thành phần.
  • Khối lượng hợp lý:
    • Tiền tố tiện ích LVM: lv... (các tiện ích LVM chung có thể bắt đầu bằng lvm...)
    • Sự miêu tả: Một nhóm khối lượng có thể được chia thành nhiều khối lượng hợp lý. Khối lượng hợp lý là chức năng tương đương với phân vùng trên đĩa vật lý, nhưng với tính linh hoạt hơn nhiều. Khối lượng hợp lý là thành phần chính mà người dùng và ứng dụng sẽ tương tác.

Tóm lại, LVM có thể được sử dụng để kết hợp khối lượng vật lý thành các nhóm khối lượng để thống nhất không gian lưu trữ có sẵn trên một hệ thống. Sau đó, quản trị viên có thể phân đoạn nhóm khối lượng thành khối lượng logic tùy ý, hoạt động như phân vùng linh hoạt.

Extents là gì?

Mỗi ổ đĩa trong một nhóm khối lượng được phân đoạn thành các khối nhỏ, kích thước cố định được gọi là kéo dài. Kích thước của các khoảng được xác định bởi nhóm khối lượng (tất cả các tập trong nhóm phù hợp với cùng kích thước).

Các khoảng trên một ổ đĩa vật lý được gọi là vật lý extents, trong khi khoảng cách của một ổ đĩa logic được gọi là khoảng cách hợp lý. Một khối lượng hợp lý chỉ đơn giản là một ánh xạ mà LVM duy trì giữa các khoảng cách logic và vật lý. Bởi vì mối quan hệ này, kích thước phạm vi đại diện cho số lượng nhỏ nhất của không gian có thể được phân bổ bởi LVM.

Extents là đằng sau nhiều tính linh hoạt và sức mạnh của LVM. Các khoảng cách logic được trình bày dưới dạng một thiết bị thống nhất bởi LVM không phải ánh xạ tới các mức vật lý liên tục. LVM có thể sao chép và sắp xếp lại các khoảng cách vật lý tạo ra một khối lượng hợp lý mà không bị gián đoạn đối với người dùng. Khối lượng hợp lý cũng có thể dễ dàng mở rộng hoặc thu nhỏ bằng cách đơn giản thêm khoảng cách vào hoặc loại bỏ các phần mở rộng khỏi ổ đĩa.

Trường hợp sử dụng đơn giản

Bây giờ bạn đã quen thuộc với một số thuật ngữ và cấu trúc mà LVM sử dụng, chúng ta có thể khám phá một số cách phổ biến để sử dụng LVM. Chúng ta sẽ bắt đầu bằng cách đi qua một thủ tục cơ bản sẽ sử dụng hai đĩa vật lý để tạo thành bốn khối logic.

Đánh dấu các thiết bị vật lý là khối lượng vật lý

Bước đầu tiên của chúng tôi là quét hệ thống cho các thiết bị khối mà LVM có thể xem và quản lý. Bạn có thể làm điều này bằng cách gõ:

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ừ đầu ra ở trên, chúng 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à /dev/ram* phân vùng được sử dụng hệ thống như một Đĩa Ram để cải tiến hiệu suất. Các đĩa trong ví dụ này là /dev/sdacó 200G không gian và /dev/sdbcó 100G.

Cảnh báo: Đảm bảo rằng bạn kiểm tra kỹ xem 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 hay chưa. Sử dụng các thiết bị này trong LVM sẽ ghi đè lên nội dung hiện tại. Nếu bạn đã có dữ liệu quan trọng trên máy chủ của mình, hãy sao lưu trước khi tiếp tục.

Bây giờ chúng ta biết các thiết bị vật lý mà chúng ta muốn sử dụng, chúng ta có thể đánh dấu chúng là khối lượng vật lý trong LVM bằng cách sử dụng pvcreate chỉ huy:

sudo pvcreate /dev/sda /dev/sdb

Output  Physical volume "/dev/sda" successfully created
  Physical volume "/dev/sdb" successfully created

Điều này sẽ viết một tiêu đề LVM cho các thiết bị để cho biết rằng chúng đã sẵn sàng để được thêm vào một nhóm khối lượng.

Bạn có thể nhanh chóng xác minh rằng LVM đã đăng ký khối tin vật lý bằng cách gõ:

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 có thể thấy, cả hai thiết bị đều có mặt dưới PV cột, viết tắt của khối lượng vật lý.

Thêm khối lượng vật lý vào một nhóm khối lượng

Bây giờ chúng ta đã tạo ra khối lượng vật lý từ các thiết bị của mình, chúng ta có thể tạo một nhóm khối lượng. Chúng ta sẽ phải chọn một tên cho nhóm khối lượng mà chúng ta sẽ giữ chung chung. Hầu hết thời gian, bạn sẽ chỉ có một nhóm khối lượng duy nhất cho mỗi hệ thống cho sự linh hoạt tối đa trong phân bổ. Chúng tôi sẽ gọi nhóm khối lượng của chúng tôi LVMVolGroup để đơn giản.

Để tạo nhóm khối lượng và thêm cả hai khối lượng vật lý của chúng ta vào nó trong một lệnh, hãy gõ:

sudo vgcreate LVMVolGroup /dev/sda /dev/sdb

Output  Volume group "LVMVolGroup" successfully created

Nếu chúng ta kiểm tra pvs đầu ra một lần nữa, chúng ta có thể thấy rằng khối lượng vật lý của chúng tôi hiện được liên kết với nhóm khối 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

Chúng ta có thể thấy một bản tóm tắt ngắn gọn về chính nhóm khối lượng bằng cách gõ:

sudo vgs

Output  VG          #PV #LV #SN Attr   VSize   VFree  
  LVMVolGroup   2   0   0 wz--n- 299.99g 299.99g

Như bạn có thể thấy, nhóm khối lượng của chúng tôi hiện có hai ổ đĩa vật lý, không có khối lượng hợp lý và có khả năng kết hợp của các thiết bị cơ bản.

Tạo các tập hợp logic từ nhóm nhóm tập

Bây giờ chúng ta có một nhóm khối lượng sẵn có, chúng ta có thể sử dụng nó như một nhóm mà chúng ta có thể phân bổ khối lượng hợp lý từ đó. Không giống như phân vùng thông thường, khi làm việc với khối tin hợp lý, bạn không cần biết bố cục của ổ đĩa vì bản đồ LVM và xử lý điều này cho bạn. Bạn chỉ cần cung cấp kích thước của khối lượng và tên.

Chúng tôi sẽ tạo bốn tập hợp logic riêng biệt trong nhóm khối lượng của chúng tôi:

  • 10G "dự án" khối lượng
  • 5G "www" khối lượng cho nội dung web
  • 20G "db" khối lượng cho một cơ sở dữ liệu
  • "không gian làm việc" sẽ lấp đầy không gian còn lại

Để tạo khối lượng hợp lý, chúng tôi sử dụng lvcreate chỉ huy. Chúng tôi phải vượt qua trong nhóm khối lượng để kéo từ và có thể đặt tên cho khối lượng hợp lý bằng -n Tùy chọn. Để chỉ định kích thước trực tiếp, bạn có thể sử dụng -L Tùy chọn. Nếu, thay vào đó, bạn muốn chỉ định kích thước theo số lượng khoảng cách, bạn có thể sử dụng -l Tùy chọn.

Chúng ta có thể tạo ra ba tập hợp logic đầu tiên với -L tùy chọn như thế này:

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.

Chúng ta có thể thấy khối lượng hợp lý và mối quan hệ của chúng với nhóm khối lượng bằng cách chọn đầu ra tùy chỉnh từ vgs chỉ huy:

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

Chúng ta đã thêm hai cột đầu ra cuối cùng để chúng ta có thể thấy không gian được phân bổ cho các khối logic của chúng ta.

Bây giờ, chúng tôi có thể phân bổ phần còn lại của không gian trong nhóm khối lượng cho không gian làm việc "" bằng cách sử dụng -l cờ, hoạt động trong phạm vi. Chúng tôi cũng có thể cung cấp phần trăm và đơn vị để truyền đạt tốt hơn ý định của chúng tôi. Trong trường hợp của chúng tôi, chúng tôi muốn phân bổ không gian trống còn lại, vì vậy chúng tôi có thể chuyển vào 100%FREE:

sudo lvcreate -l 100%FREE -n workspace LVMVolGroup

Output  Logical volume "workspace" created.

Nếu chúng tôi kiểm tra lại thông tin nhóm khối lượng, chúng tôi có thể thấy rằng chúng tôi đã sử dụng hết tất cả không gian có sẵn:

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 có thể thấy, khối lượng "workspace" đã được tạo và nhóm khối lượng "LVMVolGroup" được phân bổ hoàn toàn.

Định dạng và gắn kết các tập hợp logic

Bây giờ chúng ta có khối lượng hợp lý, chúng 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 /dev thư mục 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 khối tin hợp lý của chúng ta với hệ thống tệp Ext4, chúng ta có thể gõ:

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 chúng 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, chúng ta có thể tạo các điểm gắn kết:

sudo mkdir -p /mnt/{projects,www,db,workspace}

Sau đó, chúng tôi có thể gắn các ổ đĩa logic 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 các gắn kết liên tục, hãy thêm chúng vào /etc/fstab giống như bạn làm với các thiết bị chặn bình thường:

sudo nano /etc/fstab

/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 giờ đây sẽ tự động gắn khối lượng hợp lý LVM vào lúc khởi động.

Phần kết luận

Hy vọng rằng, vào thời điểm này, bạn sẽ có một sự hiểu biết khá tốt 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ó một sự hiểu biết cơ bản về cách để có được các thiết bị lưu trữ và chạy trong một thiết lập LVM.

Hướng dẫn này chỉ giới thiệu ngắn gọn về sức mạnh và kiểm soát LVM cung cấp cho quản trị viên hệ thống Linux. Để tìm hiểu thêm về cách làm việc với LVM, hãy xem dẫn sử dụng LVM với Ubuntu 16.04.

0