您的位置:首页 > 运维架构 > Linux

linux高级文件系统管理概述:处理交换分区、设置文件系统配额、配置raid和逻辑卷

2016-08-31 20:13 1101 查看
一、处理交换分区和文件及移动介质的使用
二、常见工具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) 创建pv

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息