首页 > 代码库 > linux高级文件系统管理概述:处理交换分区、设置文件系统配额、配置raid和逻辑卷
linux高级文件系统管理概述:处理交换分区、设置文件系统配额、配置raid和逻辑卷
8月26号,学习了linux(CentOS6.8)文件系统管理,内容颇多,主要分为如下几个部分:
一、处理交换分区和文件及移动介质的使用
二、常见工具free,df,du,dd的使用
三、设置文件系统配额
四、配置raid
五、配置逻辑卷
六、btrfs文件系统
一、处理交换分区和文件及移动介质的使用
交换分区是系统RAM的补充
基本设置包括:
创建交换分区或者文件
使用mkswap写入特殊签名
在/etc/fstab文件中添加适当的条目
使用swapon -a 激活交换空间
1、挂载交换分区
启用:swapon
swapon [OPTION]... [DEVICE]
-a 激活所有的交换分区
-s 查看交换分区详情
-p PRIORITY:指定优先级 若要永久生效可将/etc/fstab挂载选项处改为 pri=value
禁用:swapoff [OPTION]... [DEVICE]
2、SWAP的优先级
可以指定swap分区0到32767的优先级,值越大优先级越高
如果用户没有指定,那么核心会自动给swap指定一个优先级 ,这个优先级从-1开始,每加入一个新的没有用户指定优先 级的swap,会给这个优先级减一。
3、配置交换分区
(1) 分区启用swap
fdisk /dev/sdb
mkswap -L SWAP_SDB1 /dev/sdb1
vi /etc/fstab
LABEL=SWAP_SDB1 swap swap defaults 0 0
swpaon -a
swapon -s
注:改优先级(在/etc/fstab中挂载选项改为 pri=number)后用swapoff /dev/sdb1再swapon -s
(2) 文件启用swap
dd if=/dev/zero of=/testdir/swapfile bs=1M count=1024
mkswap /testdir/swapfile
vi /etc/fstab
/testdir/swapfile swap swap defaults 0 0
swapon -s cat /proc/swaps
swpaon -a
4、移动介质的使用
(1) 光盘
创建iso文件 cp /dev/sr0 /testdir/centos7.iso
将目录打包成iso文件 mkisofs -r -o /root/etc.iso /etc/
挂载iso文件 mount -o loop /testdir/centos7.iso /mnt/iso (-o loop 在centos7中可省略)
手工挂载光盘 mount /dev/cdrom /mnt/
挂载移动设备执行操作后用 sync 进行同步(将内存的数据写入磁盘)
弹出光盘 eject
弹入光盘 eject -t
刻录光盘 wodim –v –eject centos.iso
(2) USB介质
被内核探测为SCSI设备 /dev/sdaX、/dev/sdbX、或类似的设备文件
挂载后使用
二、常见工具free,df,du,dd的使用
1、内存空间使用状态:
free [OPTION]
-m: 以MB为单位
-g: 以GB为单位
2、文件系统空间占用等信息的查看工具:
df [OPTION]... [FILE]...
-H 以1000为单位
-T 文件系统类型
-h: human-readable
-i:inodes instead of blocks
-P: 以Posix兼容的格式输出
3、查看某目录总体空间占用状态:
du [OPTION]... DIR
-h: human-readable
-s: summary
4、dd命令:convert and copy a file
(1) 用法: dd if=/PATH/FROM/SRC of=/PATH/TO/DEST
bs=#:block size, 复制单元大小
count=#:复制多少个bs
(2) 各选项
of=file 写到所命名的文件而不是到标准输出
if=file 从所命名文件读取而不是从标准输入
bs=size 指定块大小(既是是ibs也是obs)
ibs=size 一次读size个byte
obs=size 一次写size个byte
cbs=size 一次转化size个byte
skip=blocks 从开头忽略blocks个ibs大小的块(对if而言)
seek=blocks 从开头忽略blocks个obs大小的块(对of而言)
count=n 只拷贝n个记录
lcase 把大写字符转换为小写字符
ucase 把小写字符转换为大写字符
nocreat 不创建输出文件
noerror 出错时不停止
notrunc 不截短输出文件
(3) dd完成操作
磁盘拷贝:
dd if=/dev/sda of=/dev/sdb
备份MBR:
dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
破坏MBR中的bootloader:
dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446
备份:
dd if=/dev/sdx of=/dev/sdy
将本地的/dev/sdx整盘备份到/dev/sdy
dd if=/dev/sdx of=/path/to/image
将/dev/sdx全盘数据备份到指定路径的image文件
dd if=/dev/sdx | gzip >/path/to/image.gz
备份/dev/sdx全盘数据,并利用gzip工具进行压缩,保存到指定路径
恢复:
dd if=/path/to/image of=/dev/sdx 将备份文件恢复到指定盘
gzip -dc /path/to/image.gz | dd of=/dev/sdx 将压缩的备份文件恢复到指定盘
拷贝内存资料到硬盘:
dd if=/dev/mem of=/root/mem.bin bs=1024 将内存里的数据拷贝到root目录下的mem.bin文件 从光盘拷贝iso镜像:
dd if=/dev/cdrom of=/root/cd.iso 拷贝光盘数据到root文件夹下,并保存为cd.iso文件
销毁磁盘数据:
dd if=/dev/urandom of=/dev/sda1 利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据 。执行此操作以后,/dev/sda1将无法挂载,创建和拷贝操作无法执行。
示例:有一个大与2K的二进制文件fileA。现在想从第64个字节位置开始读取,需要读取的大小是128Byts。又有fileB, 想把上面读取到的128Bytes写到第32个字节开始的位置,替换128Bytes,请问如何实现?
#dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc
三、设置文件系统配额
1、综述
在内核中执行
以文件系统为单位启用
对不同组或者用户的策略不同
根据块或者节点进行限制:执行软限制(soft limit) 硬限制(hard limit)
2、过程
(1) 磁盘配额:
vim /etc/fstab
UUID="文件系统uuid" /home ext4 defaults,usrquota,grpquota 0 0
(2) 创建磁盘配额数据库
quotacheck -cug /home
SElinux:
setenforce 0
getenforce
(3) 启用磁盘配额数据库
quotaon /home
(4) 配置磁盘配额
edquota wang (blocks部分的soft,hard,均是以K为单位,和磁盘的块不同)
edquota -p wang mage(复制wang的磁盘配额给mage)
setquota bash 100000 150000 0 0 /home(非交互式配置磁盘配额)
(5) 测试
用户调查quota wang
配额概述repquota /home
注:把home目录改为独立分区以可以启用磁盘配额(新建分区,暂时挂载到/mnt/home 把/home内容rm到/mnt/home,再把新分区挂载到/home)
四、设定和管理软RAID设备
RAID:廉价(独立)硬盘冗余阵列 Redundant Arrays of Inexpensive(Independent)Disks
1、作用
提高IO能力:磁盘并行读写
提高耐用性:磁盘冗余来实现
2、实现方式
外接式磁盘阵列:通过扩展卡提供适配能力
内接式RAID:主板集成RAID控制器 安装OS前在BIOS里配置
软件RAID:通过OS实现
3、级别
(1) RAID-0: 条带卷
读、写性能提升; 可用空间:N*min(S1,S2,...) 无容错能力 最少磁盘数:2, 2
(2) RAID-1: 镜像卷
读性能提升、写性能略有下降; 可用空间:1*min(S1,S2,...) 有冗余能力 最少磁盘数:2, 2N
(3) RAID-4: (一块磁盘用于存放奇偶校验位)
多块数据盘异或运算值,存于专用校验盘
(4) RAID-5: (多块磁盘依次存放校验位)
读、写性能提升 可用空间:(N-1)*min(S1,S2,...) 有容错能力:允许最多1块磁盘损坏 最少磁盘数:3, 3+
(5) RAID-6:(多块磁盘依次存放校验位,两块硬盘同时存放同一校验位)
读、写性能提升 可用空间:(N-2)*min(S1,S2,...) 有容错能力:允许最多2块磁盘损坏 最少磁盘数:4, 4+
4、RAID混合类型级别
(1) RAID-10: 读、写性能提升 可用空间:N*min(S1,S2,...)/2 有容错能力:每组镜像最多只能坏一块 最少磁盘数:4, 4+
(2) RAID-01
(3) RAID-50
(4) RAID7: 可以理解为一个独立存储计算机,自身带有操作系 统和管理工具,可以独立运行,理论上性能最高的RAID模式
(5) JBOD:Just a Bunch Of Disks 功能:将多块磁盘的空间合并一个大的连续空间使用 可用空间:sum(S1,S2,...)
注:常用raid级别:RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD
5、软raid:
(1) mdadm:为软RAID提供管理界面,模式化工具
命令的语法格式:mdadm [mode] <raiddevice> [options] <component-devices>
支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10
模式:
创建:-C 装配: -A 监控: -F 管理:-f, -r, -a
-C: 创建模式
-n #: 使用#个块设备来创建此RAID
-l #:指明要创建的RAID的级别
-a {yes|no}:自动创建目标RAID设备的设备文件(注意与管理选项-a的区别)
-c CHUNK_SIZE: 指明块大小
-x #: 指明空闲盘的个数
-D:显示raid的详细信息
mdadm -D /dev/md#
管理模式:
-f: 标记指定磁盘为损坏
-a: 添加磁盘
-r: 移除磁盘
6、软raid5配置实例
(1) fdisk /dev/sdb n t fd
/dev/sdb1
dd if=/dev/sdb of=/dev/sdd bs=1 count=512 将sdb的分区格式同步给sdd
(2) mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}1 创建raid
(3) mkfs.ext4 /dev/md0
(4) vim /etc/fstab
/dev/md0 /mnt/raid ext4 defaults 0 0
(5) mount -a
(6) mdadm -D /dev/md0 查看状态
cat /proc/mdstat 观察md的状态
(7) mdadm /dev/md0 -f /dev/sdb1 模拟失败
(8) mdadm /dev/md0 -r /dev/sdb1 删除成员
(9) mdadm /dev/md0 -a /dev/sdb1 添加成员
(10) mdadm -Ds /dev/md0 > /etc/mdadm.conf
(11) umount /dev/md0;mdadm -S /dev/md0
7、软RAID管理
(1) 生成配置文件:mdadm –D –s >> /etc/mdadm.conf
(2) 停服务:mdadm –S /dev/md0
(3) 激活:mdadm –A –s /dev/md0 激活
(4) 强制启动:mdadm –R /dev/md0
(5) 删除raid信息:mdadm --zero-superblock /dev/sdb1
8、清除软raid示例
(1) umount /dev/md0;mdadm -S /dev/md0
(2) mdadm --zero-superblock /dev/sdx 清除成员raid信息
(3) fdisk /dev/sdx 删除成员分区
(4) vim /etc/fstab
(5) rm /etc/mdadm.conf
五、逻辑卷管理器(LVM)
1、概述
允许对卷进行方便操作的抽象层,包括重新设定 文件系统的大小
允许在多个物理设备间重新组织文件系统
将设备指定为物理卷
用一个或者多个物理卷来创建一个卷组
物理卷是用固定大小的物理区域(Physical Extent, PE)来定义的
在物理卷上创建的逻辑卷 是由物理区域(PE)组成
可以在逻辑卷上创建文件 系统
2、创建逻辑卷
(1) 分区
fdisk /dev/sda t 8e
partx -a /dev/sda
lsblk
(2) pvcreate /dev/sd{a7,b}
pvs
pvdisplay
(3) vgcreate vg0 /dev/sd{a7,b}
vgs;pvs;pvdisplay;vgdisplay
(4) lvcreate -n lv0 -L 10G vg0
(5) mkfs.ext4 /dev/vg0/lv0
(6) vi /etc/fstab
mkdir /mnt/lv0;mount -a
3、扩展lv
lvextend -L +10G /dev/vg0/lv0
resize2fs /dev/vg0/lv0
df -h
4、扩展卷组
pvcreate /dev/sdc
vgextend vg0 /dev/sdc
5、删除逻辑卷
删除逻辑卷必须先删除LV,再删除VG,最后删除PV
6、为现有逻辑卷创建快照
#lvcreate -l 64 -s -n snap-data -p r /dev/vg0/data
六、btrfs文件系统
技术预览版
Btrfs (B-tree, Butter FS, Better FS), GPL, Oracle, 2007, CoW
1、核心特性:
多物理卷支持:btrfs可由多个底层物理卷组成,支持RAID, 以及联机“添加”、“移除”,“修改”
写时复制更新机制(CoW):复制、更新及替换指针,而非“就地 ”更新
数据及元数据校验码:checksum
子卷:sub_volume
快照:支持快照的快照
透明压缩
2、创建和挂载
(1) 文件系统创建:
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: 列出支持的所有feature
mkfs.btrfs -L mydata -f /dev/sdb /dev/sdc
(2) 属性查看:
btrfs filesystem show ; blkid btrfs filesystem show –mounted|all-devices
(3) 挂载文件系统:
mount -t btrfs /dev/sdb MOUNT_POINT
3、ext4和btrfs互转
(1) ext4转化为btrfs
fdisk /dev/sdd分区
mkfs.ext4 /dev/sdd1
mount /dev/sdd1 /mnt
cp /etc/fstab /mnt
umount /mnt/
fsck -f /dev/sdd1
btrfs-convert /dev/sdd1 转化ext4为btrfs
btrfs filesystem show
mount /dev/sdd1 /mnt
(2) btrfs转化ext4文件系统
umount /mnt
btrfs-convert -r /dev/sdd1
blkid /dev/sdd1
再转换成btrfs btrfs-convert /dev/sdd1
本文出自 “笑猴子” 博客,请务必保留此出处http://xiaomonkey.blog.51cto.com/11869371/1844927
linux高级文件系统管理概述:处理交换分区、设置文件系统配额、配置raid和逻辑卷