Linux磁盘数据组织的,Linux磁盘管理高级

Linux磁盘管理高级LVM

BtrshLVM

逻辑卷管理(LVM)指系统将物理卷管理抽象成一个逻辑卷,包括重新设定文件系统的大小,LVM可以弹性的更改LVM的容量,通过交换PE来进行资料的转换,将原来LV内的PE转移到其他的设备中以降低LV的容量,或将其他设备中的PE加到LV中以加大容量。

LVM还有快照的功能,快照区与原本的LV共用很多PE的区块,因此快照区与被快照的LV必须要要在同一个VG上!系统恢复的时候的文件数量不能高于快照区的实际容量。

LVM的基本原理可用下图表示:

9f28f06ec92fd7e66d3b75d6c53c1756.pngLVM: Logical Volume Manager,Version: 2

dm: device mapper:将一个或多个底层块设备组织成一个逻辑设备的模块

设备名:/dev/dm-#

软链接:

/dev/mapper/VG_NAME-LV_NAME

/dev/mapper/vol0-root

/dev/VG_NAME/LV_NAME

/dev/vol0/root

使用示例创建由/dev/sdb(15G)和/dev/sdc1(10G)组成的卷组VG0,从中切分一个大小 20G的逻辑卷mydata,采用ext4文件系统,并自动挂载到/mydata目录下

扩展mydata逻辑卷占用所有VG0的空间,并增加新的设备/dev/sdc2(5G)到VG0中

压缩mydata逻辑卷至5G大小

删除所有以上题目中创建的逻辑卷,卷组和PV

准备:准备好硬盘与相应的分区,注意修改分区的类型为8e(Linux LVM)创建pv: pvcreate[[email protected] ~]#pvcreate /dev/sd{b,c1}

Physical volume "/dev/sdb" successfully created

Physical volume "/dev/sdc1" successfully created

[[email protected] ~]#

03f19b4cf50d72b9361da7a960509b9a.png创建vg: vgcreate[[email protected] ~]#vgcreate VG0 /dev/sd{b,c1}

Volume group "VG0" successfully created

[[email protected] ~]#

560cb55d652d7c0c1dfbc954adb3ba96.png创建lv: lvcreate[[email protected] ~]#lvcreate -n mydata -L 20G VG0

Logical volume "mydata" created.

[[email protected] ~]#

7a68689e33d36cca4f525223bdec7535.png创建文件系统[[email protected] ~]#mkfs.ext4 /dev/VG0/mydata挂载

2a6f788c4d8256739b0e2d45f072f7b0.png[[email protected] ~]#mkdir /mydata

[[email protected] ~]#mount -a

[[email protected] ~]#mount |tail -n 1

/dev/mapper/VG0-mydata on /mydata type ext4 (rw)

[[email protected] ~]#

至此,一个基本的LVM就创建好了,LVM也是磁盘管理的一部分,最终也逃不过这个的基本步骤:创建分区(pv,vg,lv)---> 格式化---> 挂载。

现在,我们就可以管理LVM了,包括扩展、缩减、删除、快照等;

在一个刚创建完的裸LVM上,逻辑卷所占用VG0的空间为0,即Free PE为VG大小;现在我们让逻辑卷占满整个VG0.扩展逻辑卷[[email protected] ~]#lvextend -r -l +100%FREE /dev/VG0/mydata # 百分百占用VG

# 当然也可以lvextend -L [+]#[mMgGtT]

注:如果是xfs系统,扩展文件系统时用xfs_growfs  /dev/VG0/mydata扩展卷组[[email protected] ~]#pvcreate /dev/sdc2

Physical volume "/dev/sdc2" successfully created

[[email protected] ~]#vgextend VG0 /dev/sdc2

Volume group "VG0" successfully extended

[[email protected] ~]#

10ee322c01a45dab09d85687cdf93519.png逻辑卷缩减(慎重操作,操作前需备份,五个步骤,不能颠倒,与创建lv的顺序相反,得先缩减文件系统,最后缩减物理卷)[[email protected] ~]#umount /mydata    # 先卸载

[[email protected] ~]#e2fsck -f /dev/VG0/mydata  # 强制检查文件系统

e2fsck 1.41.12 (17-May-2010)

Pass 1: Checking inodes, blocks, and sizes

Pass 2: Checking directory structure

Pass 3: Checking directory connectivity

Pass 4: Checking reference counts

Pass 5: Checking group summary information

/dev/VG0/mydata: 11/1638400 files (0.0% non-contiguous), 146849/6552576 blocks

[[email protected] ~]#resize2fs /dev/VG0/mydata 5G   # 缩减文件系统

resize2fs 1.41.12 (17-May-2010)

Resizing the filesystem on /dev/VG0/mydata to 1310720 (4k) blocks.

The filesystem on /dev/VG0/mydata is now 1310720 blocks long.

[[email protected] ~]#lvreduce -L 5G /dev/VG0/mydata  # 缩减逻辑卷

WARNING: Reducing active logical volume to 5.00 GiB.

THIS MAY DESTROY YOUR DATA (filesystem etc.)

Do you really want to reduce VG0/mydata? [y/n]: y

Size of logical volume VG0/mydata changed from 25.00 GiB (6399 extents) to 5.00 GiB (1280 extents).

Logical volume mydata successfully resized.

[[email protected] ~]#[[email protected] ~]#mount -a   # 重新挂载

[[email protected] ~]#

0ccc713e7305f647a5d84cf1511e4f5d.png

注意:当逻辑卷LV的太小以至没占用到其它的物理卷PV,则该PV显示不出LVM(dm)

0f506d6c83bdda1677ee19dfc1501b07.png

fada0c606f8b416976f4547df608775a.png

而当我们让LV占满VG时:

87026b71a1021c50d12287b9dd3277ec.png

86b160cb57062f7f726ed2e9ffe3f60c.pngLVM快照,本质上也是创建逻辑卷,也特挂载[[email protected] ~]#lvcreate -n mydata_snapshot -p r -L 35G -s /dev/VG0/mydata

# 设置快照的名称、权限、大小、对象(对谁做快照)

Reducing COW size 35.00 GiB down to maximum usable size 30.12 GiB.

Volume group "VG0" has insufficient free space (0 extents): 7712 required.

[[email protected] ~]#

[[email protected] ~]#mkdir /mnt/snapshot

[[email protected] ~]#mount /dev/VG0/mydata /mnt/snapshot

[[email protected] ~]#移动物理卷

在移动物理卷上的空间到其它卷组时,要确保卷组VG有足够的空间,否则移动会失败,r所以,在上面的基础上我们再将LV缩减到5G,然后移动/dev/sdb.[[email protected] ~]#pvmove /dev/sdb

/dev/sdb: Moved: 0.7%  /dev/sdb: Moved: 100.0%

[[email protected] ~]#

移动前:

c35d1980bcc33fbd06050aec16b89b69.png

移动后:

20aa9d2dde83379a2f8f15c4d5f67fd0.png删除逻辑卷[[email protected] ~]#umount /dev/VG0/mydata

[[email protected] ~]#pvmove /dev/sdb

No data to move for VG0

[[email protected] ~]#pvmove /dev/sdc1

/dev/sdc1: Moved: 0.5%

/dev/sdc1: Moved: 100.0%

[[email protected] ~]#pvmove /dev/sdc2

No data to move for VG0

[[email protected] ~]#vgremove VG0

Do you really want to remove volume group "VG0" containing 1 logical volumes? [y/n]: y

Do you really want to remove active logical volume mydata? [y/n]: y

Logical volume "mydata" successfully removed

Volume group "VG0" successfully removed

[[email protected] ~]#

8e42b2ff50f7e8e76f61f8cf0bdd4f8c.pngBtrsh

Btrfs 被称为是下一代 Linux 文件系统,Linux支持众多的文件系统,其经典的系列是ext系统,在CentOS 7上面还支持xfs文件系统,ext4可以向前或向后兼容;XFS 是一个全64-bit的文件系统,开启了日志功能,所以你磁盘上的文件不再会意外宕机而遭到破坏;人们的需求无止尽,Btrfs正在绽放其魅力。

Btrfs的特性支持RAID

CoW机制:写时复制

支持快照

透明压缩

子卷:sub_volume

下面我们来简单地体验一下Btrfs, 主要涉及创建btrfs,做快照,增加与删除设备,文件系统转换,删除btrfs文件系统等。btrfs的命令特点是支持命令集,常用的有btrfs filesystem, btrfs device, btrfs balance, btrfs subvolume等。创建btrfs系统[[email protected] ~]#mkfs.btrfs -L mydata /dev/sd{b,c}

a47718ef18f40aa1eb59cb8ccf4f5bd8.png[[email protected] ~]#mkdir /mydata

[[email protected] ~]#mount LABEL=mydata /mydata

[[email protected] ~]#

查看无数据信息:

bc21d5f877ddfb9b0a0362abeaae4e9f.png在线压缩与扩展[[email protected] ~]#btrfs filesystem resize -10G 

/mydata Resize ‘/mydata‘ of ‘-10G‘

[[email protected] ~]#btrfs filesystem resize max

/mydata/ Resize ‘/mydata/‘ of ‘max‘透明压缩[[email protected] ~]#mount -o remount,compress=lzo /mydata/

[[email protected] ~]#添加新硬盘[[email protected] ~]#btrfs device add /dev/sdd /mydata/

[[email protected] ~]#btrfs device add /dev/sde /mydata/

[[email protected] ~]#

80e6e7c174d359800eab9782fc9484e3.png对元数据与数据分别作raid级别[[email protected] ~]#btrfs balance start -mconvert=raid5 /mydata/

Done, had to relocate 4 out of 5 chunks

[[email protected] ~]#btrfs balance start -dconvert=raid5 /mydata

/Done, had to relocate 1 out of 3 chunks

[[email protected] ~]#

d850651c0b4cd997fdcb06bf0f635c36.png

可见空余的硬盘有部分已经被占用,这本身也是数据平衡。

注:在修改RAID级别时,注意raid对成员数量的要求。

当然,也可以单独为数据作raid:btrfs balance start -dconvert=single /mydata平衡数据:目的是新加的磁盘可以无人用,故而做数据平衡btrfs balance status /mydata

btrfs balance srart /mydata (以chunk为单位)子卷管理[[email protected] ~]#btrfs subvolume creat /mydata/sub1   # 创建子卷

Create subvolume ‘/mydata/sub1‘

[[email protected] ~]#

[[email protected] ~]#btrfs subvolume list /mydata/  # 查看子卷

ID 262 gen 56 top level 5 path sub1

[[email protected] ~]#

# 单独挂载子卷

[[email protected] ~]#umount /mydata/

[[email protected] ~]#mkdir /mnt/sub1

[[email protected] ~]#mount -o subvol=sub1 /dev/sde /mnt/sub1

或者:

[[email protected] ~]#mount /dev/sde /mydata # 挂载父卷,子卷自动挂载快照# 子卷做快照

[[email protected] ~]#btrfs subvolume snapshot /mydata/sub1 /mydata/sub1_snapshot

Create a snapshot of ‘/mydata/sub1‘ in ‘/mydata/sub1_snapshot‘

[[email protected] ~]#btrfs与ext4之间的转换[[email protected] ~]#btrfs device delete /dev/sde /mydata/

[[email protected] ~]#btrfs filesystem show

Label: ‘mydata‘  uuid: e55867ff-d8b1-4b82-a8b3-226505a26e2f

Total devices 3 FS bytes used 928.00KiB

devid    1 size 20.00GiB used 1.53GiB path /dev/sdb

devid    2 size 20.00GiB used 1.53GiB path /dev/sdc

devid    3 size 20.00GiB used 1.53GiB path /dev/sdd

btrfs-progs v3.19.1

[[email protected] ~]#

[[email protected] ~]#mkfs.ext4 /dev/sde

[[email protected] ~]#blkid

/dev/sde/dev/sde: UUID="397d0c57-4e11-4008-9c0b-933b2ddb7ecf" TYPE="ext4"

[[email protected] ~]#

[[email protected] ~]#btrfs-convert /dev/sde  # ext4-->btrfs

creating btrfs metadata.

copy inodes [o] [         0/        11]

creating ext2fs image file.

cleaning up system chunk.

conversion complete.

[[email protected] ~]#blkid /dev/sde

/dev/sde: UUID="c5031e36-0824-4246-bca1-ff645c8cb40e" UUID_SUB="ed87c272-0c09-452b-a59b-6d423a764fc1" TYPE="btrfs"

[[email protected] ~]

[[email protected] ~]#mkdir /mnt/sde

[[email protected] ~]#mount /dev/sde /mnt/sde

[[email protected] ~]#[[email protected] ~]#umount /dev/sde

[[email protected] ~]#btrfs-convert -r /dev/sde  # 转换回去:btrfs-->ext4

rollback complete.

[[email protected] ~]#blkid /dev/sde/dev/sde: UUID="397d0c57-4e11-4008-9c0b-933b2ddb7ecf" TYPE="ext4"

[[email protected] ~]#删除子卷,快照,文件系统[[email protected] ~]#btrfs subvolume delete /mydata/sub1_snapshot

Delete subvolume (no-commit): ‘/mydata/sub1_snapshot‘

[[email protected] ~]#umount /mnt/sub1

[[email protected] ~]#btrfs subvolume delete /mydata/sub1

Delete subvolume (no-commit): ‘/mydata/sub1‘

[[email protected] ~]#

[[email protected] ~]#umount /mydata

[[email protected] ~]#btrfs device delete /dev/sdb /mydata

[[email protected] ~]#btrfs device delete /dev/sdc /mydata

ERROR: error removing the device ‘/dev/sdc‘ - unable to go below two devices on raid5

# 注:当出现类似情况,可直接格式化此设备。

[[email protected] ~]#btrfs filesystem show

btrfs-progs v3.19.1

本文主要介绍了LVM的基本原理与用法,包括LVM的创建与管理,以及简单体验了下Btrfs文件系统,包括Bftrfs的创建、在线扩展、删除等。

止战

2016.9.9

原文:http://liansir.blog.51cto.com/9372908/1851218

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值