zoukankan      html  css  js  c++  java
  • 将2个物理磁盘做成4个逻辑卷

    转发翻译于:https://www.digitalocean.com/community/tutorials/an-introduction-to-lvm-concepts-terminology-and-operations

    将物理磁盘标记为物理卷

    首先扫描当前系统上的物理磁盘,目的是方便LVM查看和管理。 你可以通过输入以下命令来完
    $ sudo lvmdiskscan

    输出将显示LVM可以管理的所有可用存储设备:

    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

    从上面的输出中,我们可以看到目前有2个磁盘和17个分区。 这些分区大部分是/ dev / ram *分区,这些分区被用作Ram Disk以提高性能。 这个例子中的磁盘是/ dev / sda,它有200G的空间,/ dev / sdb,有100G。

    由于LVM会对所要操作的磁盘覆盖写,务必仔细检查确保没有重要数据在物理磁盘上。
    现在我们知道要使用的物理磁盘,我们可以使用pvcreate命令将它们标记为LVM中的物理卷:
    sudo pvcreate /dev/sda /dev/sdb
    Output
      Physical volume "/dev/sda" successfully created
      Physical volume "/dev/sdb" successfully created

    这会将LVM header写入磁盘以表明它们已准备好添加到卷组中。凡是物理磁盘携带有LVM header的,都被认为是物理卷(physical volumes)

    通过键入以下命令可以快速验证LVM是否已标记物理卷:
    $ sudo pvs
    Output
      PV         VG   Fmt  Attr PSize   PFree  
      /dev/sda        lvm2 ---  200.00g 200.00g
      /dev/sdb        lvm2 ---  100.00g 100.00g

    这两种设备都存在于PV 栏目下面,代表物理卷(physical volumes)。

    前面提到过lvmdiskscan扫描当前系统上可用磁盘,加上-l参数可以只显示物理卷(physical volumes)

    $ sudo lvmdiskscan -l
    Output
      WARNING: only considering LVM devices
      /dev/sda                   [     200.00 GiB] LVM physical volume
      /dev/sdb                   [     100.00 GiB] LVM physical volume
      2 LVM physical volume whole disks
      0 LVM physical volumes

    pvscan命令与lvmdiskscan -l非常类似,它会在LVM physical volumes中搜索所有可用设备。 而lvmdiskscan -l则是在所有可用磁盘(加lvm header和没加lvm header的磁盘)中列出LVM physical volumes。两条命令输出格式有点不同,pvscan包含少量的附加信息:

    $ sudo pvscan
    Output
      PV /dev/sda   VG LVMVolGroup     lvm2 [200.00 GiB / 0    free]
      PV /dev/sdb   VG LVMVolGroup     lvm2 [100.00 GiB / 10.00 GiB free]
      Total: 2 [299.99 GiB] / in use: 2 [299.99 GiB] / in no VG: 0 [0   ]

    If you need more detail, the pvs and pvdisplay commands are better options.

    The pvs command is highly configurable and can display information in many different formats. Because its output can be tightly controlled, it is frequently used in when scripting or automation is needed. Its basic output provides a useful at-a-glance summary similar to the earlier commands:

    $  sudo pvs
    Output
      PV         VG          Fmt  Attr PSize   PFree 
      /dev/sda   LVMVolGroup lvm2 a--  200.00g     0 
      /dev/sdb   LVMVolGroup lvm2 a--  100.00g 10.00g

    For more verbose, human-readable output, the pvdisplay command is usually a better option:

    sudo pvdisplay
    Output
      --- Physical volume ---
      PV Name               /dev/sda
      VG Name               LVMVolGroup
      PV Size               200.00 GiB / not usable 4.00 MiB
      Allocatable           yes (but full)
      PE Size               4.00 MiB
      Total PE              51199
      Free PE               0
      Allocated PE          51199
      PV UUID               kRUOyU-0ib4-ujPh-kAJP-eeQv-ztRL-4EkaDQ
    
      --- Physical volume ---
      PV Name               /dev/sdb
      VG Name               LVMVolGroup
      PV Size               100.00 GiB / not usable 4.00 MiB
      Allocatable           yes 
      PE Size               4.00 MiB
      Total PE              25599
      Free PE               2560
      Allocated PE          23039
      PV UUID               udcuRJ-jCDC-26nD-ro9u-QQNd-D6VL-GEIlD7

    As you can see the pvdisplay command is often the easiest command for getting detailed information about physical volumes.

    To discover the logical extents that have been mapped to each volume, pass in the -m option to pvdisplay:

    sudo pvdisplay -m
    Output
      --- Physical volume ---
      PV Name               /dev/sda
      VG Name               LVMVolGroup
      PV Size               200.00 GiB / not usable 4.00 MiB
      Allocatable           yes 
      PE Size               4.00 MiB
      Total PE              51199
      Free PE               38395
      Allocated PE          12804
      PV UUID               kRUOyU-0ib4-ujPh-kAJP-eeQv-ztRL-4EkaDQ
    
      --- Physical Segments ---
      Physical extent 0 to 0:
        Logical volume  /dev/LVMVolGroup/db_rmeta_0
        Logical extents 0 to 0
      Physical extent 1 to 5120:
        Logical volume  /dev/LVMVolGroup/db_rimage_0
        Logical extents 0 to 5119
    
       . . .

    This can be very useful when trying to determine which data is held on which physical disk for management purposes.

    将物理卷添加到卷组

    现在我们已经从我们的设备创建了物理卷,我们可以创建一个卷组(volume group)。 我们将不得不为卷组选择一个名称,我们将保持通用名称。 大多数情况下,每个系统只能有一个卷组,以实现最大的分配灵活性。 为了简单起见,我们将调用我们的卷组LVMVolGroup。
    要创建卷组,可以使用一条命令将我们的2个物理卷(physical volumes)加入到卷组。
    $ sudo vgcreate LVMVolGroup /dev/sda /dev/sdb
    Output
      Volume group "LVMVolGroup" successfully created

    检查pvs输出结果,发现2个物理卷现在已属于卷组LVMVolGroup

    $ 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

    下面命令可以查看一个卷组的简单描述

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

    当前我们的卷组有2个物理卷,0个逻辑卷,卷组的大小是2个物理卷大小之和。

    在卷组池(Volume Group Pool)之上创建逻辑卷

    现在我们有了一个卷组,可以把他作为划分逻辑卷的资源池。与传统分区不同,我们不需要知道逻辑卷与底层众多磁盘的对应关系,因为LVM已经帮我们做好了映射工作。只需要提供逻辑卷的名词、大小就能使用逻辑卷。下面创建4个逻辑卷:
    • 10G "projects" volume
    • 5G "www" volume for web content
    • 20G "db" volume for a database
    • "workspace" volume that will fill the remaining space
    要创建逻辑卷,我们使用lvcreate命令。 必须通过卷组,从卷组中创建逻辑卷。可以用-n选项命名逻辑卷。 要直接指定大小,可以使用-L选项。 相反,如果您希望根据extents数量指定大小,则可以使用-l选项。
    我们可以使用-L选项创建前三个逻辑卷,如下所示:
    $ 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.

    通过在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

    最后两列可以看到逻辑卷的名字,大小

     
    现在,我们可以使用-l标志将卷组中剩余的空间分配给“workspace”卷,该标志以extents模式运行。 我们还可以提供一个百分比和一个单位来更好地表达我们的意图。 我们希望分配剩余的空闲空间,所以我们可以通过100%FREE:
    $  sudo lvcreate -l 100%FREE -n workspace LVMVolGroup
    Output
      Logical volume "workspace" created.

    再次检查卷组信息,可以发现我们使用了全部存储空间。

    $ 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

    格式化、挂载逻辑卷

    现在我们已经有了逻辑卷,可以像普通块设备一样使用它们。
    与其他存储设备一样,逻辑设备存放在在/ dev目录。 你可以在两个地方访问它们:
    • /dev/volume_group_name/logical_volume_name
    • /dev/mapper/volume_group_name-logical_volume_name
    下面使用EXT4格式化逻辑卷
    $  sudo mkfs.ext4 /dev/LVMVolGroup/projects
    $  sudo mkfs.ext4 /dev/LVMVolGroup/www
    $  sudo mkfs.ext4 /dev/LVMVolGroup/db
    $  sudo mkfs.ext4 /dev/LVMVolGroup/workspace

    或者这样

    $  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

    格式化之后,创建挂载点

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

    把逻辑卷挂载到适当位置

    $  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

    要使挂载持久化,请将它们添加到/ etc / fstab,就像使用普通块设备一样:

    $  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
            

    现在,操作系统在引导时自动挂载LVM逻辑卷。


    华丽分割线    

    https://www.slashroot.in/advanced-guide-lvm-logical-volume-management-linux-part-1

    How To Use LVM To Manage Storage Devices on Ubuntu 16.04


  • 相关阅读:
    协议(五)-从电报机到智能手机
    协议(四)-通信发展史
    NDK历史版本
    android onKeyDown
    设计模式
    Android获取系统时间的多种方法
    USB 3.0规范中译本 第5章 机械结构
    ES6新特性
    08_SQLyog图形化工具介绍
    07_聚合函数,分组查询&limit关键字
  • 原文地址:https://www.cnblogs.com/kelamoyujuzhen/p/9013115.html
Copyright © 2011-2022 走看看