• LVM 速学教程!(原创)


    终于原创一问,当然也参看了很多地方,具体没有记住出自哪里!请多多包涵!
    此文以块设备虚拟磁盘来实践操作,但是也有不如真是设备的地方,如有问题请指正!

    基础操作

    1.准备工作
    lvmdiskscan #查看磁盘情况(包括虚拟磁盘)
    mkdir /disk

    2.创造块设备
    dd if=/dev/zero of=/disk/hda bs=1M count=100
    dd if=/dev/zero of=/disk/hdb bs=1M count=100
    losetup /dev/loop0 /disk/hda
    losetup /dev/loop1 /disk/hdb

    lvm 操作步骤

    fdisk -l
    3.物理卷
    pvcreate /dev/loop{0,1} #初始化物理卷
    pvscan #扫描物理卷
    pvdisplay #查看物理卷信息

    4.卷组

    vgscan #扫描卷组
    vgdisplay #查看卷组大小
    vgcreate vgloop01 /dev/loop{0,1} #创建卷组

    5.创建逻辑卷

    lvcreate -L 20m -n lvloop01 vgloop01 #创建逻辑卷命名为lvloop01 大小20M
    lvscan #扫描逻辑卷
    lvdisplay #显示逻辑卷信息

    6.格式化和挂载

    mkfs.ext3 /dev/vgloop01/lvloop01 #格式化逻辑卷
    mount /dev/vgloop01/lvloop01 /disk/lvm #挂载
    df -h #查看当前磁盘情况

    高级操作

    1.动态扩展lv

    ==========增加=============
    lvextend -L +30M /dev/vgloop01/lvloop01
    e2fsck -f /dev/vgloop01/lvloop01
    lvdisplay
    resize2fs /dev/vgloop01/lvloop01 50M

    ==========减小============
    umount /disk/lvm/
    e2fsck -f /dev/vgloop01/lvloop01
    resize2fs /dev/vgloop01/lvloop01 20M
    lvresize --size 20M /dev/vgloop01/lvloop01
    lvdisplay
    mount /dev/vgloop01/lvloop01 /disk/lvm/

    2.增加pv
    dd if=/dev/zero of=/disk/hdc bs=1M count=100
    losetup /dev/loop2 /disk/hdc
    losetup -a
    pvcreate /dev/loop2
    vgdisplay
    vgextend vgloop01 /dev/loop2

    模拟磁盘损坏

    1.准备数据文件

    cp -R /boot/vmlinuz-2.6.18-92.el5 /disk/lvm/
    md5sum /disk/lvm/vmlinuz-2.6.18-92.el5
    b3654261b1f775e81adfe33657f3b965 /disk/lvm/vmlinuz-2.6.18-92.el5

    2.假设/dev/loop0 设备损坏

    pvmove -n /dev/vgloop01/lvloop01 /dev/loop0 /dev/loop2 #将/disk/lvm 中的数据从 /dev/loop0 迁移至 /dev/loop2上
    vgreduce vgloop01 /dev/loop0 #将/dev/loop0 从vgloop01 中移出来

    pvscan
    PV /dev/loop1   VG vgloop01     lvm2 [96.00 MB / 96.00 MB free]
    PV /dev/loop2   VG vgloop01     lvm2 [96.00 MB / 76.00 MB free]
    PV /dev/loop0                   lvm2 [100.00 MB]
    pvremove /dev/loop0

    备注
    :新硬盘容量一定在大于旧硬盘中的数据容量,并且新旧硬盘必须在同一个VG中
    PS:pvmove命令用来把使用的pv移动到其他空余的pv中,需要内核的dm_mirror的支持,然而2.6.22内核中的dm_mirror有bug,执行会出错,建议升级到6.2.23。

    lvm 删除
    umount /disk/lvm
    lvremove /dev/vgloop01/lvloop01
    vgremove vgloop01
    pvremove /dev/loop{0,1,2}

    losetup -a
    losetup -d /dev/loop0
    losetup -d /dev/loop1
    losetup -d /dev/loop2

  • 相关阅读:
    天意舒坦
    快别理乱七八糟的事,找个安静的地方
    ABP vNext微服务架构详细教程——架构介绍
    大话领域驱动设计——基础概念
    大话领域驱动设计——分层架构
    ABP vNext微服务架构详细教程——简介
    ABP vNext微服务架构详细教程——镜像推送
    ABP vNext微服务架构详细教程——分布式权限框架
    ABP vNext微服务架构详细教程——基础服务层
    ABP vNext微服务架构详细教程——身份认证服务
  • 原文地址:https://www.cnblogs.com/storymedia/p/4436168.html
Copyright © 2020-2023  润新知