欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

马哥 10_03 _LVM之一 有大用

MD: Multi disk, Multi Device,  meta device 多设备,元设备出现的早

mdadm:用户空间工具,可以帮忙管理RAID,但RAID真正管理工作靠的是内核模块,  mdadm与真正工作起来的raid是没有太大关系的


MD,DM

    /dev/md#

    meta device

    

DM: Device Mapper,设备映射,功能比MD更强大,出现的晚

    逻辑设备  实现逻辑设备的机制

        RAID,LVM2(逻辑卷)  (LVM1不需要DM的功能)

    可以实现RAID0,RAID1,但实现RAID5有点麻烦, 也能实现jbod  DM与MD有重叠,但不完全重叠 

通常拿MD作RAID

通常拿DM做LVM2


DM: 是LVM2所依赖的核心,要依赖于DM的功能有很多,DM所能提供的能力不仅限于LVM2

    快照:snapshot 快速有点类似于软链接

    多路径: multipath(对数据完整性要求高的场合比较多)


DM 能够动态的增加或减少(缩减)文件系统的空间


10G ,VG


vgcreate VG_NAME /PATH/TO/PV

    -s #单位: PE大小 默认是4MB


lvcreate -n LV_NAME -L #M(G)  VG_NAME

        -n 指定名字

        -L指定大小

        -l  指定盘区个数,计算起来较麻烦,一般不用吧





# lsmod   (列出内核装载的模块)   md已经直接被做在内核当中了,md是自动装载的

image.png


Device Mapper Kernel Architecture 设备映射内核架构

linear 线性,类似于jbod 多个小盘组合成一个大盘

mirror 类似于镜像


image.png



image.png



image.png


image.png



快照可以在瞬间完成

image.png



其实 zfs文件系统 天生具备快照功能


image.png


image.png



对逻辑卷可以创建快照,必须在同一个卷组中

image.png

PV:physical Volume

VG: Volume Group  相当于扩展分区,不能直接使用,它只是一个组合而已

LV:Logical Volume

LVM: logical volume manager   (应该是 manager 不是 mapper)


image.png


image.png


增加PE(LE)来扩展逻辑空间  (PE就是物一盘区的意思,,,本质上是物理卷上的 物理盘区 加到 逻辑卷上 )


image.png



image.png


image.png


image.png



image.png


# fdisk -l 

image.png



# fdisk /dev/sda

image.png

image.png


image.png


image.png

image.png


image.png


# partprobe /dev/sda

# cat  /proc/dev/sda

image.png


fdisk 最多只能支持15个分区


image.png

image.png


# pvcreate /dev/sda/{10,11}  创建pv

image.png


# pvs (查看当前系统的pv 物理卷)  (6.53G 2.80G 误差在 20%之内都是可接受的)

image.png

/dev/sda2 是安装操作系统的时候,它自己创建的,跟我们现在创建的 /dev/sda10  /dev/sda11 没有关系

误差在 20%之内都是可接受的 (更何况 会保留元数据的)


# pvdisplay (更详细的查看当前系统的pv)

image.png

只有把PV加入到GV中的时候,才知道自己的PE是多大 (此处没有大小,只有创建为卷组(GV)时, 才有大小)


# pvdisplay /dev/sda10 (更详细的查看当前系统的pv)(只显示其中某一个pv的信息)

image.png



# pvscan 扫描当前系统中一共有多少个PV   (将来把某pv插到其它主机上面,就扫描pv的元数据)

image.png

image.png


pvremove 是移除掉元数据 

vgreduce 才是真正的移除掉某个pv

image.png



image.png



# man vgcreate

image.png

image.png


# vgs  (查看当前系统的vg (卷组))


image.png

这是系统自动创建的 vo10


# vgcreate myvg /dev/sda{10,11}

image.png


# vgs  (查看当前系统的 vg (卷组))

image.png


# vgdisplay myvg (详细查看当前系统的gv)(只显示myvg)

image.png

此时(把pv加入vg后就有了pe了) pvdisplay /dev/sda10 就可以看到 PE 大小了

# pvdisplay /dev/sda10 (更详细的查看当前系统的pv)(只显示其中某一个pv的信息)

image.png


# man vgcreate

image.png

image.png


image.png

红帽默认 32M的PE大小


没有创建 lv (没有lv的数据)那么 vg 是可以删掉的

# vg 

image.png

# man vgremove

image.png

image.png

# vgremove myvg

# vgs 

image.png

# vgcreate -s myvg /dev/sda{10,11}


image.png


# vgdisplay myvg 

image.png


# vgs

image.png

# pvs 可以看出 myvg 里面包含的两个pv盘,

image.png


要移除掉一个pv盘


# vgreduce (可以缩小vg)(意味着拿掉一个pv)

image.png

先挪数据 pvmove

再拿掉 vgreduce


image.png

image.png


# pvs 

image.png

# pvmove /dev/sda11 (数据就移到其它盘上面去了,很可能移到/dev/sda10上面去了)

image.png


# man vgreduce 

image.png

image.png


# vgreduce myvg /dev/sda11

image.png


# vgs

image.png

# pvs (可以看到 /dev/sda11不属于某个vg了)

image.png


# man pvremove (把 pv 删除了,把里面的所有数据抹掉)

image.png

image.png


# pvremove /dev/sda11

image.png

# pvs (此时 /dev/sda11 没有了)

image.png



# pvcreate /dev/sda12

image.png


# man vgextend

image.png

image.png


# vgextend myvg /dev/sda12

image.png


# vgs

image.png


# pvdisplay /dev/sda12

image.png


PE 大小 创建后是不能改变的



image.png


# man lvcreate

image.png


image.png


# lvcreate -L 50M -n testlv myvg

image.png


# lvs (查看当前系统的逻辑卷)

image.png

# lvdisplay



(看到  /dev/myvg/testlv )

image.png

image.png

image.png


# lvdisplay /dev/myvg/testlv  (只详细查看某一个lv的相关信息,名字是 /dev/vg name/lv name)

image.png

image.png


# mke2fs -j /dev/myvg/testlv

image.png

image.png


 # mount /dev/myvg/testlv /mnt

# ls /mnt

image.png

# moun 

image.png


# ls /dev/mapper  (这里面才是真正意义上的设备文件)

image.png


# ls -l /dev/mapper  (真正的设备文件)

image.png


# ls  -l /dev/myvg  (它反而是一个链接文件)

image.png


(很显然,创建卷组的时候,不能使用横线(中短横)作为卷组(vg)名,也不能使用横线(中短横)作为逻辑卷(lv)的名字)

逻辑卷(lv)的名字 最好使好纯字符  纯英文字符


# man lvremove 

image.png

image.png


# lvremove /dev/myvg/testlv  (/dev/mapper/myvg-testlv)                移除逻辑卷

image.png


# umount /mnt  (先卸载)

# lvremove /dev/myvg/testlv  (再移除)

image.png


# lvs 

image.png

普通分类: