Linux 第15天: (08月29日) Linux高级文件系统管理shell
本章内容
设定文件系统配额
设定和管理软RAID设备
配置逻辑卷
设定LVM快照
btrfs文件系统数据库
配置配额系统
综述
在内核中执行
以文件系统为单位启用
对不一样组或者用户的策略不一样
根据块或者节点进行限制
执行软限制(soft limit)
硬限制(hard limit)
初始化
分区挂载选项:usrquota、grpquota
初始化数据库:quotacheckapp
为用户设定配额
执行
开启或者取消配额:quotaon、quotaoff
直接编辑配额:edquota username
在shell中直接编辑:
setquota usename 4096 5120 40 50 /foo
定义原始标准用户
edquota -p user1 user2ide
报告配额状态
报告
用户调查:quota
配额概述:repquota
其它工具:warnquota工具
什么是RAID
RAID:Redundant Arrays of Inexpensive(Independent)Disks
1988年由加利福尼亚大学伯克利分校(University of California-Berkeley)“A Case for Redundant Arrays of Inexpensive Disks”。
多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者二者都提供性能
RAID
提升IO能力:
磁盘并行读写
提升耐用性;
磁盘冗余来实现
级别:多块磁盘组织在一块儿的工做方式有所不一样
RAID实现的方式:
外接式磁盘阵列:经过扩展卡提供适配能力
内接式RAID:主板集成RAID控制器
安装OS前在BIOS里配置
Software RAID:测试
RAID级别
RAID-0:条带卷,strip
RAID-1: 镜像卷,mirror
RAID-2
..
RAID-5
RAID-6
RAID-10
RAID-01操作系统
RAID-0:
读、写性能提高;
可用空间:N*min(S1,S2,...)
无容错能力
最少磁盘数:2, 2指针
RAID-1:
读性能提高、写性能略有降低;
可用空间:1*min(S1,S2,...)
有冗余能力
最少磁盘数:2, 2N日志
RAID-4:
多块数据盘异或运算值,存于专用校验盘
RAID-5:
读、写性能提高
可用空间:(N-1)*min(S1,S2,...)
有容错能力:容许最多1块磁盘损坏
最少磁盘数:3, 3+
RAID-6:
读、写性能提高
可用空间:(N-2)*min(S1,S2,...)
有容错能力:容许最多2块磁盘损坏
最少磁盘数:4, 4+
RAID混合类型级别
RAID-10:
读、写性能提高
可用空间:N*min(S1,S2,...)/2
有容错能力:每组镜像最多只能坏一块
最少磁盘数:4, 4+
RAID-0一、RAID-50
RAID7:能够理解为一个独立存储计算机,自身带有操做系统和管理工具,能够独立运行,理论上性能最高的RAID模式
JBOD:Just a Bunch Of Disks
功能:将多块磁盘的空间合并一个大的连续空间使用
可用空间:sum(S1,S2,...)
经常使用级别:RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD
软RAID
mdadm:为软RAID提供管理界面
为空余磁盘添加冗余
结合内核中的md(multi devices)
RAID设备可命名为/dev/md0、/dev/md一、/dev/md二、/dev/md3等等
软件RAID的实现
mdadm:模式化的工具
命令的语法格式:mdadm[mode] <raiddevice> [options] <component-devices>
支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10
模式:
建立:-C
装配: -A
监控: -F
管理:-f, -r, -a
<raiddevice>: /dev/md#
<component-devices>: 任意块设备
-C: 建立模式
-n #: 使用#个块设备来建立此RAID;
-l #:指明要建立的RAID的级别;
-a {yes|no}:自动建立目标RAID设备的设备文件;
-c CHUNK_SIZE: 指明块大小;
-x #: 指明空闲盘的个数;
例如:建立一个10G可用空间的RAID5
-D:显示raid的详细信息;
mdadm-D /dev/md#
管理模式:
-f: 标记指定磁盘为损坏
-a: 添加磁盘
-r: 移除磁盘
观察md的状态:
cat /proc/mdstat
中止md设备:
mdadm-S /dev/md#
软RAID配置实例
使用mdadm建立并定义RAID设备
#mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
用文件系统对每一个RAID设备进行格式化
#mke2fs -j /dev/md0
测试RAID设备
mdadm容许检查RAID设备的情况
#mdadm --detail|D /dev/md0
增长新的成员
#mdadm –G /dev/md0 –n4 -a /dev/sdf1
软RAID测试和修复
模拟磁盘故障
#mdadm /dev/md0 -f /dev/sda1
移除磁盘
#mdadm /dev/md0 –r /dev/sda1
从软件RAID磁盘修复磁盘故障
替换出故障的磁盘而后开机
在备用驱动器上重建分区
#mdadm /dev/md0 -a /dev/sda1
mdadm、/proc/mdstat及系统日志信息
软RAID管理
生成配置文件:mdadm –D –s >> /etc/mdadm.conf
停服务:mdadm –S /dev/md0
激活:mdadm –A –s /dev/md0 激活
删除raid信息:mdadm –zero-superblock /dev/sdb1
逻辑卷管理器(LVM)
容许对卷进行方便操做的抽象层,包括从新设定文件系统的大小
容许在多个物理设备间从新组织文件系统
将设备指定为物理卷
用一个或者多个物理卷来建立一个卷组
物理卷是用固定大小的物理区域(Physical Extent,PE)来定义的
在物理卷上建立的逻辑卷是由物理区域(PE)组成
能够在逻辑卷上建立文件系统
LVM介绍
LVM: 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
LVM更改文件系统的容量
LVM能够弹性的更改LVM的容量
经过交换PE来进行资料的转换,将原来LV内的PE转移到其余的设备中以下降LV的容量,或将其余设备中的PE加到LV中以加大容量
查看LVM的使用状况
点击“系统”->“管理”->“逻辑卷管理器”
增大或减少逻辑卷
打开逻辑卷管理器后,点击“编辑属性”,打开LVM属性对话框:
删除逻辑卷
删除逻辑卷必须先删除LV,再删除VG,最后删除PV
点击逻辑卷管理器的“卷组”->“逻辑视图”的LV逻辑卷
点击“移除选择的逻辑卷”,再删除VG,最后删除PV。
pv管理工具
显示pv信息
pvs:简要pv信息显示
pvdisplay
建立pv
pvcreate /dev/DEVICE
显示卷组
vgs
vgdisplay
建立卷组
vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
管理卷组
vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
删除卷组
先作pvmove,再作vgremove
lv管理工具
显示逻辑卷
lvs
Lvdisplay
建立逻辑卷
lvcreate-L #[mMgGtT] -n NAME VolumeGroup
删除逻辑卷
lvremove/dev/VG_NAME/LV_NAME
重设文件系统大小
fsadm[options] resize device [new_size[BKMGTEP]]
resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]
扩展和缩减逻辑卷
扩展逻辑卷:
# lvextend-L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
# resize2fs /dev/VG_NAME/LV_NAME
缩减逻辑卷:
# umount/dev/VG_NAME/LV_NAME
# e2fsck -f /dev/VG_NAME/LV_NAME
# resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
# lvreduce-L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
# mount
建立逻辑卷实例
建立物理卷
pvcreate /dev/sda3
为卷组分配物理卷
vgcreate vg0 /dev/sda3
从卷组建立逻辑卷
lvcreate -L 256M -n data vg0
mke2fs -j /dev/vg0/data
mount /dev/vg0/data /mnt/data
逻辑卷管理器快照
快照是特殊的逻辑卷,它是在生成快照时存在的逻辑卷的准确拷贝
对于须要备份或者复制的现有数据集临时拷贝以及其它操做来讲,快照是最合适的选择。
快照只有在它们和原来的逻辑卷不一样时才会消耗空间。
在生成快照时会分配给它必定的空间,但只有在原来的逻辑卷或者快照有所改变才会使用这些空间
当原来的逻辑卷中有所改变时,会将旧的数据复制到快照中。
快照中只含有原来的逻辑卷中更改的数据或者自生成快照后的快照中更改的数据
创建快照的卷大小只须要原始逻辑卷的15%~20%就够了。也可使用lvextend放大快照。
快照就是将当时的系统信息记录下来,就好像照相通常,若未来有任何数据改动了,则原始数据会被移动到快照区,没有改动的区域则由快照区和文件系统共享。
因为快照区与本来的LV共用不少PE的区块,所以快照去与被快照的LV必需要要在同一个VG上!系统恢复的时候的文件数量不能高于快照区的实际容量。
使用LVM快照
为现有逻辑卷建立快照
#lvcreate -l 64 -s -n snap-data -p r /dev/vg0/data
挂载快照
#mkdir -p /mnt/snap
#mount -o ro /dev/vg0/snap-data /mnt/snap
删除快照
#umount /mnt/databackup
#lvremove /dev/vg0/databackup
btrfs文件系统
技术预览版
Btrfs (B-tree, Butter FS, Better FS), GPL, Oracle, 2007, CoW
核心特性:
多物理卷支持:btrfs可由多个底层物理卷组成;支持RAID,以及联机“添加”、“移除”,“修改”
写时复制更新机制(CoW):复制、更新及替换指针,而非“就地”更新
数据及元数据校验码:checksum
子卷:sub_volume
快照:支持快照的快照
透明压缩
btrfs文件系统文件系统建立:mkfs.btrfs-L 'LABEL'-d <type>: raid0, raid1, raid5, raid6, raid10, single-m <profile>: raid0, raid1, raid5, raid6, raid10, single, dup-O <feature>-O list-all: 列出支持的全部featuremkfs.btrfs-L mydata-f /dev/sdb/dev/sdc属性查看:btrfsfilesystem show ; blkidbtrfs filesystem show –mounted|all-devices挂载文件系统:mount -t btrfs/dev/sdbMOUNT_POINT透明压缩机制:mount -o compress={lzo|zlib} DEVICE MOUNT_POINT在线修改文件系统大小man btrfsbtrfsfilesystem resize -10G /mydatabtrfsfilesystem resize +5G /mydatabtrfsfilesystem resize max /mydata查看df–lh; btrfsfilesytemdf/mydata添加设备:man btrfs-devicebtrfsdevice add /dev/sdd/mydata平衡数据:man btrfs-banlancebtrfs banlance status /mydatabtrfs banlance start /mydatabtrfs banlance pause /mydatabtrfs banlance cancel /mydatabtrfs banlance resume /mydata删除设备btrfs device delete /dev/sdb /mydata修改raid级别:注意raid对成员数量的要求btrfs balance start -mconvert=raid1|raid0|raid5 /mydatabtrfs balance start -dconvert=raid1|raid0|raid5 /mydata子卷管理:man btrfs-subvolumebtrfssubvolumelist /mydata 查看子卷ID等信息btrfssubvolumecreate /mydata/subv1umount/mydatamount -o subvol=subv1 /dev/sdd/mnt/subv1btrfssubvolumeshow /mnt/subv1mount /dev/sdb/mydata挂父卷,子卷自动挂载mount -o subvolid=### /dev/sdd/mnt/subv1子卷管理btrfssubvolumeshow /mnt/subv1btrfssubvolumedelete /mydata/subv1建立快照:btrfssubvolumesnapshot /mydata/subv1 \/mydata/snapshot_subv1btrfssubvolumelist /mydata删除快照btrfssubvolumedelete /mydata/snapshot_subv1对一个文件作快照(当前卷)cd /mydata/subv1cp--reflinktestfilesnapshot_testfile