RAID、LVM和btrfs文件系统

一、RAID:

Redundant Arrays of Inexpensive Disks,廉价磁盘冗余阵列;

Redundant Arrays of Independent Disks,独立磁盘冗余阵列;

将多个相对廉价的IDE接口的磁盘组合成一个"阵列",并不是将磁盘简单的罗列在一起,而是根据特定规则进行组合,从而可以实现提高IO性能,实现磁盘冗余容错,或者此二功能兼具;

RAID的好处:

提高IO性能:磁盘并行读写机制;

提高磁盘耐用性:通过磁盘冗余实现容错;

RAID的级别:

多块磁盘组织在一起的工作方式;

RAID的实现方式:

基于硬件实现:

外接式磁盘阵列:通过扩展接口或扩展插槽提供具有RAID功能的适配硬件设备;

式磁盘阵列:主板集成的RAID控制器;

基于软件模拟实现:

通过应用程序模拟硬件功能;

RAID的功能级别:

RAID-0:条带卷,strip

读写性能提升

磁盘可用空间:N*min(S1,S1,...)

磁盘空间利用率:100%

无容错能力

至少需要2块磁盘

RAID-1:镜像卷,mirror

读性能提升,写性能有所下降;

磁盘可用空间:1*min(S1,S2,...)

磁盘利用率:1/N

具备容错能力

至少需要2块磁盘

RAID-5:带有奇偶校验信息的条带卷;

读写性能均提升

可以磁盘空间:(N-1)*min(S1,S2,...)

磁盘利用率:(N-1)/N

具备容错能力

至少需要3块磁盘

RAID-6:双重奇偶校验的条带卷;

读写性能均提升

可以磁盘空间:(N-2)*min(S1,S2,...)

磁盘利用率:(N-2)/N

具备容错能力

至少需要4块磁盘

RAID的混合级别:

RAID-10:读、写性能提升

具备容错能力

磁盘利用率:1/2

至少需要4块磁盘

RAID-01:读、写性能提升

具备容错能力

磁盘利用率:1/2

至少需要4块磁盘

RAID-50

读、写性能提升

具备容错能力

至少需要6块磁盘

JBOD:Just a Bunch Of Disks,仅仅是一组磁盘;将多块磁盘的空间合并成一个更大的连续的存储空间;有人将此方式称为"跨区";

对于RAID,常用的级别:RAID-0, RAID-1, RAID-5, RAID-10, RAID-50,JBOD

二、CentOS下软件RAID的实现:

利用内核中的md(multi devices)模块

mdadm:模块化的工具

格式:mdadm [mode] <raiddevice> [options] <component-devices>

[mode]:

创建模式:-C, --create

装配模式:-A, --assemble

监控模式:-F, --follow, --monitor

管理模式:无选项开关

增长模式:-G, --grow

混杂模式:-D, -S

create, build, or grow:

-n, --raid-devices=

指定参与软RAID的磁盘的数量;

-l, --level=

When used with --create, options are: linear, raid0, 0, stripe, raid1, 1, mirror, raid4, 4, raid5, 5, raid6, 6, raid10, 10,  mul tipath, mp, faulty, container.

-x, --spare-devices=

指定阵列中空闲的用于自动故障倒换使用的设备数量;

-c, --chunk=

指定条带化级别的RAID中,每个区块(CHUNK)的大小;

-a, --auto{=yes,md,mdp,part,p}{NN}

自动创建目标RAID设备文件;

管理模式:

-a, --add:向阵列中添加新设备;

-r, --remove:从阵列中移除设备;

-f, --fail:将设备标记为失效;

混杂模式:

-D, --detail:显示阵列信息;

通过输出重定向保存阵列的装配记录:

mdadm -D --scan >> /etc/mdadm.conf

-S, --stop:停止阵列功能;

示例:

mdadm -C md0 -n 4 -l 5 -a yes /dev/sdb /dev/sdc /dev/sdd /dev/sde

mdadm -S /dev/md0

查看md设备的信息:

mdadm -D

保存装配信息:

mdadm -D --scan >> /etc/mdadm.conf

重新装配md阵列:

mdadm -A /dev/md0

三、逻辑卷管理

LVM:逻辑卷管理器,使用纯软件的方式组织一个或多个底层的物理块设备,将他们重新定义为一个逻辑块设备

利用linux内核中的dm(device mapper)模块实现,可以将一个或多个底层设备,按照预期规划组织成特定的形式,从而实现更高级的逻辑磁盘管理方式

使用DM模块实现LVM管理的一般性步骤:

1.创建并标识物理卷,PV

2.基于PV创建卷组,即逻辑块设备(VG),同时指定PE的大小;

注意:一旦卷组创建完成,则PE的大小将固定下来,其值无法再次进行修改;如果想要调整PE大小,只能重新定义卷组;

3.在已有的卷组中,创建逻辑卷;

4.需要在逻辑卷中创建文件系统(高级格式化);

5.挂载;

物理卷的管理:

注意:如果想要让一个基本分区成为物理卷,必须将分区的系统ID修改为83

物理卷管理的相关命令:

pvcreate:将普通的块设备创建为物理卷设备;创建物理卷;

pvremove:将物理卷设备转变为普通块设备;删除物理卷;

pvdisplay:显示物理卷的详细信息;

pvs:显示物理卷的简短信息;

pvmove:将某个物理卷中的所有被LV占用的PE移动到其他的物理卷中;

卷组管理的相关命令:

vgcreate

格式:vgcreate [OPTIONS] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]

-s, --physicalextentsize PhysicalExtentSize[bBsSkKmMgGtTpPeE]

用于指定PE的大小,默认单位为MiB,默认的大小为4MiB;

vgreduce:从卷组中移除物理卷;

注意:必须保证被移除的物理卷上没有被占用的PE;如果有,则需要先对物理卷执行pvmove命令,再执行移除操作;

vgextend:向卷组中添加物理卷;

vgdisplay:显示卷组的详细信息;

vgs:显示卷组的简短信息;

逻辑卷管理的相关命令:

lvcreate:创建逻辑卷

-L, --size LogicalVolumeSize[bBsSkKmMgGtTpPeE]

指定逻辑卷的大小,其值不能超出卷组的容量;

-l, --extents LogicalExtentsNumber[%{VG|PVS|FREE|ORIGIN}]

在创建逻辑卷时,指定逻辑卷中包含的LE的数量或者某个特定值的百分比;

-i, --stripes Stripes

在创建逻辑卷时,以条带的方式创建,并指明在逻辑卷上的条带的数量;

-n, --name LogicalVolume{Name|Path}

指明逻辑卷的名称;

-s, --snapshot OriginalLogicalVolume{Name|Path}

创建快照卷;

-p, --permission {r|rw}

创建逻辑卷时指明此逻辑卷的操作权限;

-a, --activate {y|ay|n|ey|en|ly|ln}

-ay:创建逻辑卷的命令执行之后立即激活逻辑卷

-an:创建逻辑卷的命令执行之后将逻辑卷设置为停用状态;

lvs:显示逻辑卷简要信息

lvdisplay:显示逻辑卷信息

lvextend:扩展逻辑卷的物理边界;

-L [+]SIZE[kKmMgGtT] /PATH/TO/LV

resize2fs [-f] /PATH/TO/LV

注意:扩展逻辑卷的空间,可以在线进行;

扩展逻辑卷的示例:(逻辑卷的路径通常为/dev/卷组名/逻辑卷名)

lvextend -L +10G 逻辑卷的路径

resize2fs -f 逻辑卷的路径           //将逻辑边界扩展到物理边界的大小

lvreduce:缩减逻辑卷的物理边界;

lvreduce -L [-]SIZE[kKmMgGtT] /PATH/TO/LV

resize2fs [-f] /PATH/TO/LV LV_SIZE 缩减逻辑卷的逻辑边界

注意:

1.在缩减逻辑卷空间时,先缩减逻辑边界,再缩减物理边界;

2.缩减逻辑卷空间前,先卸载并停用逻辑卷,缩减之后,再启用挂载即可;

3.建议在缩减逻辑卷之前,对文件系统进行检测,以保证数据一致性;

缩减逻辑卷的示例:

umount 挂载逻辑卷的目录                    //缩减逻辑卷不能在线进行,必须先解除挂载

e2fsck 逻辑卷的路径                        //检查并修复逻辑卷

resize2fs -f 逻辑卷的路径 10G              //减少逻辑边界到10G

lvchange -an 逻辑卷的路径                  //修改逻辑卷为停用状态

lvreduce -L 10G 逻辑卷的路径               //减少逻辑卷物理边界到10G

lvchange -ay 逻辑卷的路径                  //修改逻辑卷为激活状态

mount 逻辑卷的路径 挂载逻辑卷的目录        //挂载逻辑卷

四、逻辑卷的快照

1.快照的定义:

1)其本身也是逻辑卷,可以将其视为做快照的目标逻辑卷的另外一个访问路径;

2)快照卷是一种特殊的逻辑卷,在其创建之初,其存储空间并没有任何消耗;只有当原来的逻辑卷中数据发生变化时,才会消耗快照卷空间;

3)快照卷中只包含原有逻辑卷中被更改的数据或自生成快照逻辑卷之后快照卷中更改的数据;

4)快照卷也可以使用lvextend进行扩容;

5)通常来说,快照卷和原卷会共用很多的PE,因此快照卷与原卷就必须在同一VG上;在从快照卷备份数据的过程中,必须要保证,变化的数据文件的总量不能超过快照卷大小;

2.创建快照卷:

lvcreate -L SIZE_SNAPSHOP -s -p r -n LV_NAME_SNAPSHOT /PATH/TO/LV_ORIGIN

示例:

lvcreate -L 5G -s -p r -n lv_snap /dev/vg/lv

mkdir /mnt/snapshot

mount /dev/vg/lv_snap /mnt/snapshot/

完成数据的备份之后:

umount /mnt/snapshot/

lvremove /dev/lv_snap

五、btrfs文件系统

1.btrfs的特性:

1)可扩展性:

2)多物理卷支持;

3)写时复制的数据更新机制(CoW);

更新、修改等操作是在复制之后替换指针;

4)数据及元数据的校验码;

5)子卷管理;

6)快照,快照的快照;文件的快照;

7)透明压缩,隐形压缩;

2.btrfs命令:

格式:btrfs <command> [<args>]

<command>

filesystem:

btrfs-filesystem - control btrfs filesystem

btrfs filesystem <subcommand> <args>

df [options] <path>    显示btrfs文件系统的空间使用率;

label [<dev>|<mountpoint>] [<newlabel>]    查看或设置btrfs文件系统的卷标;

resize [<devid>:][+/-]<size>[kKmMgGtTpPeE]|[<devid>:]max <path>    在线修改文件系统的大小;

show [--mounted|--all-devices|<path>|<uuid>|<device>|<label>]      查看btrfs文件系统相关的信息;

sync <path>    强制将内存中的数据同步至文件系统;

usage [options] <path> [<path>...]    查看btrfs文件系统上各硬件设备的磁盘使用率;

device:

btrfs-device - control btrfs devices

btrfs device <subcommand> <args>

add [-Kf] <dev> [<dev>...] <path>    向btrfs文件系统中添加新设备;

delete <dev> [<dev>...] <path>    从btrfs文件系统中删除设备;

balance:btrfs-balance - balance btrfs filesystem

btrfs balance <subcommand> <args>

start [options] <path>     在线调整跨设备的chunk;修改数据及元数据的组织方式;

-d[<filters>]

-dconvert={raid0, raid1, raid10, raid5, raid6, single.}

-m[<filters>]

-mconvert={raid0, raid1, raid10, raid5, raid6, dup, single.}

-s[<filters>]

-sconvert={raid0, raid1, raid10, raid5, raid6, single.}

pause <path>    暂停正在运行的平衡操作;

cancel <path>    撤销此前的正在运行或暂停的平衡操作;

status [-v] <path>    查看平衡过程的状态;

resume <path>    恢复被打断的平衡过程;

subvolume:

btrfs-subvolume - control btrfs subvolume(s)

btrfs subvolume <subcommand> [<args>]

create [-i <qgroupid>] [<dest>]<name>    创建子卷;

delete [options] <subvolume> [<subvolume>...]    删除子卷;

snapshot [-r] <source> <dest>|[<dest>/]<name>    为指定的子卷创建快照卷;

五、ext系列文件系统和btrfs之间安全转换

btrfs-convert命令

btrfs-convert [options] <device>

从ext转换至btrfs:

btrfs-convert /dev/sde1

从btrfs回滚至ext:

btrfs-convert -r /dev/sde1

注意:转换操作需要提前将设备卸载;

原文地址:http://blog.51cto.com/papapa213/2094484

时间: 2024-11-08 22:39:03

RAID、LVM和btrfs文件系统的相关文章

linux中的软RAID实现,逻辑卷和btrfs文件系统

RAID: Redundant Arrays of Inexpensive Disks,廉价磁盘冗余阵列:             Redundant Arrays of Independent Disks,独立磁盘冗余阵列: 1988年,UC Berkeley提出的"A case for Redundant Arrays of Inexpensive Disks"旨在将多个相对廉价IDE接口的磁盘组合成一个"阵列",并不是将磁盘简单罗列在一起,而是根据特定规则进行

LVM逻辑卷的缩减与删除,LVM逻辑卷快照,btrfs文件系统,网络管理

逻辑卷缩减 缩减的时候要注意缩减的空间不要超过文件系统的空间,不然缩减的时候会损坏文件系统. 第一步要先取消挂载(必须) 第二部检查文件完整性(必须) e2fsck -f /dev/vg0/lv0 第三部文件系统缩减,先缩减文件系统. resize2fs /dev/vg0/lv0 10G  (缩减到剩下10G) 第四步逻辑卷组的缩减 lvreduce -L 10G /dev/vg0/lv0 lvreduce -r -L 10G /dev/vg0/lv0 可以一步连上面的文件系统一起缩小. 第五步

centos7之btrfs文件系统

btrfs文件系统 一.Btrfs(B-tree,butter FS,better FS) btrfs是centos7默认支持的文件系统,btrfs有着ext系列文件系统之外的众多功能,可是说功能非常强大: 特性 1. 支持跨物理设备(磁盘及分区)创建,数据和元数据分别支持RAID,可在线添加.移除.修改等操作 其支持诸多RAID,譬如数据支持raid0,raid1 raid5,raid6,raid10,single 元数据支持raid0, raid1, raid5, raid6, raid10

Btrfs文件系统

一.Btrfs简介 Btrfs(B-tree,Butter FS,Better FS)是Oracle公司在2007年左右开始研发的一个开源文件系统,由GPL授权.该文件系统最重要的特性就是支持写时复制,写时复制在修复文件数据方面比传统就地修改的文件系统有着极大的优势,其目的是用来取代Linux早些年来一直使用的ext系列文件系统,ext系列文件系统的反删除功能一直不太好.Btrfs能够支持非常大的单个文件大小和总大小,并且有文件检查功能,快照功能.还能做累积性快照(快照的快照),能实现和增量备份

Linux学习之btrfs文件系统

btrfs是Linux系统上一种非常强大的文件系统,全称:B-tree,是Oracle公司基于GPL协定于2007年研发的.那么对于btrfs文件系统我们如何去创建使用它呢.下面我们将以CentOS7系统在实验中研究它. 一.了解btrfs的特性 btrfs文件系统有很多的特性 ,我们这边就它的几个核心的特性说下: 1.多物理卷支持:btrfs可由多个底层物理卷组成:支持RAID,以联机"添加"."移除"."修改". 2.写时复制更新机制:复制.

btrfs文件系统--马哥51cto三期

btrfs文件系统 Btrfs(B-tree,Butter FS,Better FS)其遵从GPL协定,由Oracle于2007年开发. 特性: 1.多物理卷支持:由底层多个物理卷组成,支持RAID{0,1,5,6,10},以联机"添加","移除","修改". 2.写时复制更新机制(COW):复制,更新及替换指针,而非"就地更新":改变文件是先将文件复制一份,在新文件上进行修改,最后将文件名指针指向新文件,原文件保留,利于文件

btrfs文件系统初识及应用

Btrfs(通常念成Butter FS),由Oracle于2007年宣布并进行中的COW(copy-on-write式)文件系统.目标是取代Linux目前的ext3文件系统,改善ext3的限制,特别是单一文件大小的限制,总文件系统大小限制以及加入文件校验和特性. 特性: 首先是扩展性 (scalability) 相关的特性,btrfs 最重要的设计目标是应对大型机器对文件系统的扩展性要求. Extent,B-Tree 和动态 inode 创建等特性保证了btrfs在大型机器上仍有卓越的表现,其整

btrfs文件系统的管理及使用

Btrfs简介 文件系统似乎是内核中比较稳定的部分,多年来,人们一直使用 ext2/3,ext 文件系统以其卓越的稳定性成为了事实上的 Linux 标准文件系统.近年来 ext2/3 暴露出了一些扩展性问题,于是便催生了 ext4 .在 2008 年发布的 Linux2.6.19 内核中集成了 ext4 的 dev 版本. 2.6.28 内核发布时,ext4 结束了开发版,开始接受用户的使用.似乎 ext 就将成为 Linux 文件系统的代名词.然而当您阅读很多有关 ext4 的文章时,会发现都

btrfs文件系统学习

btrfs文件系统由Oracle开发,btrfs设计目标为取代早期ext文件系统. 核心特性: 1.多物理卷支持:btrfs可由多个底层物理卷组成,支持RAID,以联机"添加"."移除"."修改". 2.写时复制更新机(COW):复制.更新及替换指针,而非就地修改更新. 3.数据及元数据效验码(checksum). 4.支持子卷(sub_volume). 5.快照及快照的快照. 6.透明压缩,支持两种压缩算法lzo和zlib通过命令mount -