• 【转】Linux中vgextend的含义,linux的LVM 具体配置过程


    原文:https://blog.csdn.net/weixin_33325305/article/details/117041424

    ---------------

    LVM:

    几个基本概念

    PV   Physical Volume   (物理卷)就是实体磁盘   利用fdisk等软件,将他们的ID改为LVM(8e)并修改磁盘的相关信息,让他们成为LVM可用的磁盘

    实体磁盘的ID 可以通过fdisk -l来查看,通常83是linux的partition,82是swap的代号 我们需要的是PV ID:8e

    PV实施过程:fdisk修改ID,以pvcreate建立成PV

    建立 PV 与 PV 的查询:

    要建立 PV 其实很简单,只要直接使用 pvcreate 即可!我们来谈一谈与 PV 有关的指令吧!

    • pvcreate :将实体 partition 建立成为 PV ;

    • pvscan :搜寻目前系统里面任何具有 PV 的磁盘;

    • pvdisplay :显示出目前系统上面的 PV 状态;

    • pvremove :将 PV 属性移除,让该 partition 不具有 PV 属性。

    • partprobe :这个指令可以让核心立刻读入最新的 partition table 而不必 reboot。

    fdisk /dev/hda

    command (m for help):p   这里p是查看磁盘分区的相关情况

    command (m for help):t   更换磁盘分区的ID号

    partition number(1-4):1   选择相应的磁盘分区1

    Hex code(type L to list codes):8e   输入ID号:8e

    command (m for help):t   更换磁盘分区的ID号

    partition number(1-4):2   选择相应的磁盘分区2

    Hex code(type L to list codes):8e   输入ID号:8e

    command (m for help):p   查看修改ID后磁盘分区的相关情况

    Command (m for help): w   保存配置

    partprobe   这个指令可以让核心立刻读取最新的partition table

    [root@linux ~]# pvscan

    No matching physical volumes found

    [root@linux ~]# pvcreate /dev/hdb1

    Physical volume "/dev/hdb1" successfully created

    [root@linux ~]# pvcreate /dev/hdb2

    Physical volume "/dev/hdb2" successfully created

    [root@linux ~]# pvscan

    PV /dev/hdb1 lvm2 [9.31 GB]

    PV /dev/hdb2 lvm2 [9.31 GB]

    Total: 2 [18.63 GB] / in use: 0 [0 ] / in no VG: 2 [18.63 GB]

    VG   Volume Group  (卷组)  通过将一个或多个PV组合成一个大磁盘,最大容量值与底下的PE有关,如果完全使用LVM的预设参数,那么一个最大的LVM磁盘可达到256G

    VG实施过程:利用vgcreate加入多个PV成为VG

    建立 VG 及 VG 相关的指令也不少,我们来看看:

    • vgcreate :就是主要建立 VG 的指令啦!他的参数比较多,等一下介绍。

    • vgscan :搜寻系统上面是否有 VG 存在?

    • vgdisplay :显示目前系统上面的 VG 状态;

    • vgextend :在 VG 内增加额外的 PV ;

    • vgreduce :在 VG 内移除 PV;

    • vgchange :设定 VG 是否启动 (active);

    • vgremove :删除一个 VG 啊!

    先建立 VG 吧!

    [root@linux ~]# vgcreate vbirdvg /dev/hdb1 /dev/hdb2     创建一个VG,用两个PV

    Volume group "vbirdvg" successfully created

    # 整个 vgcreate 的语法很简单,就是利用 vgcreate VGname PVname1 PVname2..

    # 不过,如果想要修改前面提到的 PE 参数时,就得要加入 -s PE 数值了!

    [root@linux ~]# vgscan     查看具体VG参数

    Reading all physical volumes. This may take a while...

    Found volume group "vbirdvg" using metadata type lvm2

    [root@linux ~]# vgdisplay

    --- Volume group ---

    VG Name vbirdvg

    System ID

    Format lvm2

    Metadata Areas 2

    Metadata Sequence No 1

    VG Access read/write

    VG Status resizable

    MAX LV 0

    Cur LV 0

    Open LV 0

    Max PV 0

    Cur PV 2

    Act PV 2

    VG Size 18.62 GB

    PE Size 4.00 MB

    Total PE 4768

    Alloc PE / Size 0 / 0

    Free PE / Size 4768 / 18.62 GB

    VG UUID AZRSJx-FWYF-UIlH-NCh5-NqKS-f4gx-ZR049N

    [root@linux ~]# vgreduce vbirdvg /dev/hdb2      从VG中去掉一个PV

    Removed "/dev/hdb2" from volume group "vbirdvg"

    [root@linux ~]# vgextend vbirdvg /dev/hdb2      从VG中增加一个PV

    Volume group "vbirdvg" successfully extended

    PE   在建立VG的时候,我们同时需要指定PE这个数值,预设是4MB;PE为4MB,VG则为256G(一个VG最大可以容许65534的PE,所以修改PE值,当然就会影响到最大的VG容量)

    LV   这个就是最后被挂载到档案系统的partition,这个LV是由VG分割来的

    LV实施过程:利用lvcreate分割VG成为一个或多个LV

    • lvcreate :建立 LV 啦!

    • lvscan :查询系统上面的 LV ;

    • lvdisplay :显示系统上面的 LV 状态啊!

    • lvextend :在 LV 里面增加容量!

    • lvreduce :在 LV 里面减少容量;

    • lvremove :删除一个 LV !

    • lvresize :对 LV 进行容量大小的调整!

    [root@linux ~]# lvcreate -L [sizeMG] -n [LVname] VGname

    参数:

    -L :后面接容量,容量的单位可以是 M, G 等等;

    -n :后面接的就是 LV 的名称啦!

    更多的说明应该可以自行查阅吧! man lvcreate

    [root@linux ~]# lvcreate -L 18.62G -n vbirdlv vbirdvg

    Rounding up size to full physical extent 18.62 GB

    Logical volume "vbirdlv" created

    [root@linux ~]# ll /dev/vbirdvg/vbirdlv

    lrwxrwxrwx 1 root root 27 Nov 14 21:10 /dev/vbirdvg/vbirdlv ->

    /dev/mapper/vbirdvg-vbirdlv

    # 看见了没有啊!?这就是我们最重要的一个玩意儿了!

    # 未来所有要挂载的数据,通通是透过这个装置的!

    [root@linux ~]# lvscan

    ACTIVE '/dev/vbirdvg/vbirdlv' [18.62 GB] inherit

    [root@linux ~]# lvdisplay

    --- Logical volume ---

    LV Name /dev/vbirdvg/vbirdlv

    VG Name vbirdvg

    LV UUID B6kSrg-9LMG-gqVy-jjz8-x0gM-ya9S-XLFcZN

    LV Write Access read/write

    LV Status available

    # open 0

    LV Size 18.62 GB

    Current LE 4767

    Segments 2

    Allocation inherit

    Read ahead sectors 0

    Block device 253:0

    透过PV ,VG,LV的规划,再利用mkfs(mke2fs -j)等等就可以将您的多个partition整合成为一个大磁盘,再利用这个大磁盘来分割与格式化。

    这个大磁盘可以增加,减少容量的变化,也就是说,VG大磁盘可以抽换PV,并且原有的数据,理论上不会受影响。

    最后实施过程:分割LV逻辑partition,然后格式化,直接挂载到LINUX的档案系统中。

    partition 的格式化与挂载!

    [root@linux ~]# mke2fs -j /dev/vbirdvg/vbirdlv

    [root@linux ~]# mkdir /mnt/lvm

    [root@linux ~]# mount -t ext3 /dev/vbirdvg/vbirdlv /mnt/lvm

    [root@linux ~]# df  查看分区情况

    [root@linux ~]# fdisk -l /dev/hdb  查看/dev/hdb的具体分区和使用情况

    让原有的 LVM 磁盘加大的方法: resize2fs

    1. 将欲处理的 LV 卸载;

    umount /mnt/lvm

    2. 建立 PV;

    [root@linux ~]# fdisk /dev/hdb

    Command (m for help): t

    Partition number (1-4): 3

    Hex code (type L to list codes): 8e

    Changed system type of partition 3 to 8e (Linux LVM)

    Command (m for help): w

    The partition table has been altered!

    [root@linux ~]# partprobe

    [root@linux ~]# pvcreate /dev/hdb3

    3. 将建立的 PV 以 vgextend 增加到 VG 当中;

    [root@linux ~]# vgextend vbirdvg /dev/hdb3

    4. 利用 lvextend 增加刚刚 VG 所增加的容量;

    lvextend -L +10G /dev/vbirdvg/vbirdlv

    5. 利用 resize2fs 将 LV 的容量确实增加!

    [root@linux ~]# mount -t ext3 /dev/vbirdvg/vbirdlv /mnt/lvm

    [root@linux ~]# resize2fs [-f] [device] [size]

    [root@linux ~]# umount /mnt/lvm

    [root@linux ~]# resize2fs -f /dev/vbirdvg/vbirdlv

    [root@linux ~]# mount -t ext3 /dev/vbirdvg/vbirdlv /mnt/lvm

    另外,如果你想要将 LVM 移除的话,那么就应该要:

    1. 先卸载系统上面的 LVM 扇区;

    2. 使用 lvremove 移除 LV ;

    3. 使用 vgchange -a n VGname 让 VGname 这个 VG 不具有 Active 的标志;

    4. 使用 vgremove 移除 VG:

    5. 使用 pvremove 移除 PV;

    6. 最后,使用 fdisk 修改 ID 回来啊!

    本文出自 “wxfxn2000” 博客,谢绝转载!

  • 相关阅读:
    java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor version 52.0
    VS .sln .csproj 文件的右键编译
    任务失败,因为未找到“AxImpexe”,或未安装正确的 Microsoft Windows SDK
    对数据集“dsArea”执行查询失败。 (rsErrorExecutingCommand),Query execution failed for dataset 'dsArea'. (rsErrorExecutingCommand),Manually process the TFS data warehouse and analysis services cube
    In-Place upgrade to Team Foundation Server (TFS) 2015 from TFS 2013Team Foundation Server TFS TFS 2015 TFS upgrade TFS with Sharepoint
    VS2015开发环境的安装和配置 2016-07-03更新
    【Android】将Xamarin For VS升级为4.1.0.530版
    Win10年度更新开发必备:VS2015 正式版下载汇总
    Win10年度更新开发必备:VS2015 Update 1正式版下载汇总
    Win10年度更新开发必备:VS2015 Update 2正式版下载汇总
  • 原文地址:https://www.cnblogs.com/oxspirt/p/16225635.html
Copyright © 2020-2023  润新知