HƯỚNG DẪN Tìm hiểu về LVM

Thảo luận trong 'KIẾN THỨC VPS/SERVER' bắt đầu bởi quyet1990, 24/11/16.

  1. quyet1990

    quyet1990 New Member

    Tham gia ngày:
    22/10/16
    Bài viết:
    220
    Đã được thích:
    0
    Giới thiệu LVM
    LVM là một phương pháp cho phép ấn định không gian đĩa cứng thành những Logical Volume khiến cho việc thay đổi kích thước trở nên dễ dàng ( so với partition ). Với kỹ thuật Logical Volume Manager (LVM) bạn có thể thay đổi kích thước mà không cần phải sửa lại partition table của OS. Điều này thực sự hữu ích với những trường hợp bạn đã sử dụng hết phần bộ nhớ còn trống của partition và muốn mở rộng dung lượng của nó.

    LVM cũng cung cấp các tính năng tiên tiến như snapshotting, phân chia (striping), và mirroring.

    LVM kiến trúc và thuật ngữ
    Cấu trúc LVM quản lý lưu trữ (LVM Storage Management Structures)
    Trong bài viết này có 1 số thuật ngữ mà các bạn phải hiểu để sử dụng tốt LVM. Những điều quan trọng bạn phải biết là:

    Physical volumes
    LVM tiện ích tiền tố: pv ...
    Mô tả
    : Là những đĩa vật lý hoặc phân vùng đĩa của bạn chẳng hạn như /dev/hda hoặc /dev/hdb1. Khi bạn muốn sử dụng chỉ cần mount vào thôi. Đối với việc sử dụng LVM chúng ta có thể kết hợp nhiều physical volumes thành volume groups

    Volume groups
    LVM tiện ích tiền tố: vg .
    ..
    Mô tả: Là một nhóm bao gồm các physycal volumes thực và dung lượng này được sử dụng để tạo ra các logical volumes, trong đó bạn có thể làm được những điều như sau : tạo, thay đổi kích thước, gỡ bỏ và sử dụng. Bạn có thể xem volume group như 1 “phân vùng ảo”

    Logical volumes
    LVM tiện ích tiền tố: lv ...
    Mô tả
    : Là những volumes cuối cùng sau khi mount vào hệ thống của mình, bạn có thể thêm vào, gỡ bỏ và thay đổi kích thước một cách nhanh chóng. Kể từ khi chúng chứa trong các volume group bạn có thể làm cho nó lơn hơn bất kỳ physical volume đơn lẻ mà bạn muốn. (ví dụ bạn có 4 ổ đĩa mỗi ổ 5GB khi bạn kết hợp nó lại thành 1 volume group 20GB, và bạn có thể tạo ra 2 logical volumes mỗi disk 10GB)

    Trong ngôn ngữ LVM không còn partition nữa, tất cả là volume: physical/group/logical volume.

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

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

    Đánh dấu các thiết bị vật lý như Physical Volumes
    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õ:
    Mã:
    lvmdiskscan
    Kết quả đầ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:
    Mã:
    
    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ả ra ở trên, chúng ta có thể thấy rằng hiện nay có 2 đĩ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 trên hệ thống như một Ram disk giúp cải tiến hiệu suất. Các đĩa trong ví dụ này là /dev/sda, trong đó có 200G của không gian, và /dev/sdb, trong đó có 100G.

    Cảnh báo: Hãy chắc chắn rằng bạn kiểm tra lại các thiết bị mà bạn có ý định sử dụng với LVM không có bất kỳ dữ liệu quan trọng đã được ghi vào. Sử dụng các thiết bị này trong LVM sẽ ghi đè lên các 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 bạn, thực hiện 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ý, chúng tôi muốn sử dụng, chúng ta có thể đánh dấu chúng là physical volume trong LVM bằng cách sử dụng lệnh pvcreate:
    Mã:
    pvcreate /dev/sda /dev/sdb
    Kết quả đầu ra:
    Mã:
    Output
    Physical volume "/dev/sda" successfully created
    Physical volume "/dev/sdb" successfully created
    
    Điều này sẽ viết một LVM header đến các thiết bị để cho biết rằng chúng đã sẵn sàng để được thêm vào một volume group.
    Bạn có thể nhanh chóng xác minh rằng LVM đã được đã chỉ đinh physical volume bằng cách gõ:
    Mã:
    pvs
    Kết quả đầu ra:
    Mã:
    Output
      PV         VG   Fmt  Attr PSize   PFree 
      /dev/sda        lvm2 ---  200.00g 200.00g
      /dev/sdb        lvm2 ---  100.00g 100.00g
    
    Thêm Physical Volumes tới một Volume Group
    Bây giờ chúng ta đã tạo ra physical volumes từ các thiết bị của chúng tôi, chúng tôi có thể tạo một volume group. Chúng tôi sẽ phải chọn một tên cho volume group. Hầu hết thời gian, bạn sẽ chỉ có một volume group 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 volume group của chúng tôi là LVMVolGroup cho đơn giản.
    Để tạo ra các volume group và thêm physical volumes của chúng tôi đến chúng sử dụng lệnh đơn giản sau:
    Mã:
    vgcreate LVMVolGroup /dev/sda /dev/sdb
    Mã:
    Output
    Volume group "LVMVolGroup" successfully created
    
    Nếu chúng ta kiểm tra đầu ra pvs một lần nữa, chúng ta có thể thấy rằng physical volumes của chúng tôi hiện nay có liên quan với volume group mới:
    Mã:
    pvs
    Mã:
    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ề các volume group của mình bằng cách gõ:
    Mã:
    vgs
    Mã:
    Output
      VG          #PV #LV #SN Attr   VSize   VFree 
      LVMVolGroup   2   0   0 wz--n- 299.99g 299.99g
    


    Tạo Logical volumes từ Volume Group Pool

    Bây giờ chúng ta có một volume group có sẵn, chúng ta có thể sử dụng nó như một pool. Không giống như các phân vùng thông thường, khi làm việc với logical volumes, bạn không cần phải biết cách bố trí của volume mà LVM sẽ xử lý việc này cho bạn. Bạn chỉ cần cung cấp các kích thước của khối lượng và một tên.
    Chúng tôi sẽ tạo ra bốn logical volumes riêng biệt từ volume group của chúng tôi:
    • 10G "projects" volume
    • 5G "www" volume for web content
    • 20G "db" volume for a database
    • "workspace" volume được dùng lấp đầy khoảng không gian còn lại
    Để tạo khối tin hợp lý, chúng tôi sử dụng các lệnh lvcreate. Chúng ta có thể đặt tên cho volume hợp lý với tùy chọn -n. Để xác định kích thước trực tiếp, bạn có thể sử dụng tùy chọn -L. Nếu, thay vào đó, bạn muốn xác định kích thước về số lượng, mức độ, bạn có thể sử dụng tùy chọn -l.

    Chúng ta có thể tạo ra ba logical volume hợp lý đầu tiên với các tùy chọn -L như thế này:
    Mã:
    lvcreate -L 10G -n projects LVMVolGroup
    lvcreate -L 5G -n www LVMVolGroup
    lvcreate -L 20G -n db LVMVolGroup
    
    Mã:
    Output
    Logical volume "projects" created.
    Logical volume "www" created.
    Logical volume "db" created.
    
    Chúng ta có thể nhìn thấy các logical volumes và mối quan hệ của chúng với volume group bằng cách sử dụng câu lệnh sau:
    Mã:
     vgs -o +lv_size,lv_name
    Mã:
    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 tôi đã thêm vào hai cột cuối cùng của kết quả đầu ra vì vậy mà chúng ta có thể nhìn thấy không gian phân bổ cho logical volume của chúng tôi

    Bây giờ, chúng ta có thể phân bổ phần còn lại của không gian trong volumes group đến volume “workspace” sử dụng cờ -l.
    Trong trường hợp của chúng tôi, chúng tôi mong muốn phân bổ không gian trống còn lại, vì vậy chúng tôi sử dụng câu lệnh sau:
    Mã:
    lvcreate -l 100%FREE -n workspace LVMVolGroup
    Mã:
    Output
    Logical volume "workspace" created.
    
    Nếu chúng ta kiểm tra lại các thông tin volume group, chúng ta có thể thấy rằng chúng tôi đã sử dụng hết tất cả các không gian có sẵn:
    Mã:
    vgs -o +lv_size,lv_name
    Mã:
    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, volume “workspace” đã được tạo ra và volume group "LVMVolGroup" là hoàn toàn được phân bổ.

    Định dạng và gắn kết Logical Volumes
    Bây giờ chúng ta có Logical Volumes , 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 thư mục /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:
    Mã:
    /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 chúng tôi với các hệ thống tập tin Ext4, chúng ta có thể gõ:
    Mã:
    mkfs.ext4 /dev/LVMVolGroup/projects
    mkfs.ext4 /dev/LVMVolGroup/www
    mkfs.ext4 /dev/LVMVolGroup/db
    mkfs.ext4 /dev/LVMVolGroup/workspace
    
    Hoặc chúng ta có thể gõ:
    Mã:
    mkfs.ext4 /dev/mapper/LVMVolGroup-projects
    mkfs.ext4 /dev/mapper/LVMVolGroup-www
    mkfs.ext4 /dev/mapper/LVMVolGroup-db
    mkfs.ext4 /dev/mapper/LVMVolGroup-workspace
    
    Sau khi định dạng, chúng ta có thể tạo ra điểm gắn kết:
    Mã:
    mkdir -p /mnt/{projects,www,db,workspace}
    
    Sau đó chúng ta có thể gắn kết những logical volume đến các vị trí thích hợp:
    Mã:
    mount /dev/LVMVolGroup/projects /mnt/projects
    mount /dev/LVMVolGroup/www /mnt/www
    mount /dev/LVMVolGroup/db /mnt/db
    mount /dev/LVMVolGroup/workspace /mnt/workspace
    
    Để thực hiện gắn kết bền bỉ, thêm chúng vào /etc/fstab giống như bạn làm với các thiết bị khối bình thường:
    Mã:
     nano /etc/fstab
    Mã:
    
    . . .
    
    /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
    
    Các hệ điều hành hiện nay nên gắn kết LVM logical volumes một cách tự động lúc khởi động.
     

Chia sẻ trang này

Đang tải...