处理交换文件和分区
交换分区是系统RAM的补充
基本设置包括:
1 创建交换分区或者文件
2 使用mkswap写入特殊签名
3 在/etc/fstab文件中添加适当的条目
4 使用swapon -a 激活交换空间
挂载交换分区
启用:swapon swapon [OPTION]... [DEVICE]
-a:激活所有的交换分区;
-p PRIORITY:指定优先级
/etc/fstab:pri=value
禁用:swapoff [OPTION]... [DEVICE]
SWAP的优先级
1 用户可以给某个swap指定一个0到32767的优先级
2 如果用户没有指定,那么核心会自动给swap指定一个优 先级,这个优先级从-1开始,每加入一个新的没有用户 3 指定优先级的swap,会给这个优先级减一。
4 先添加的swap的缺省优先级比较高,除非用户自己指定 一个优先级,而用户指定的优先级(是正数)永远高于核心 5 缺省指定的优先级(是负数)。
6 优化性能:分布存放,高性能磁盘存放
移动介质
1 挂载意味着使外来的文件系统看起来如同是主目录树的一部分
2 访问前、介质必须被挂载
3 摘除时,介质必须被卸载
4 按照默认设置,非根用户只能挂载某些设备(光盘、DVD、软 盘、USB等等)
5 挂载点通常在/media 或/mnt下
使用光盘
1 在图形环境下自动启动挂载/run/media/<user>/<label>
2 否则就必须被手工挂载
3 mount /dev/cdrom /mnt/
4 eject命令卸载或弹出磁盘
5 创建ISO文件
cp /dev/cdrom /root/centos7.iso
mkisofs -r -o /root/etc.iso /etc
6 刻录光盘 wodim –v –eject centos.iso
挂载USB介质
1 被内核探测为SCSI设备
/dev/sdaX、/dev/sdbX、或类似的设备文件
2 在图形环境中自动挂载
图标在[计算机]窗口中创建
挂载在/run/media/<user>/<label>
3 手动挂载
mount /dev/sdb1 /mnt
常见工具
内存空间使用状态:
free [OPTION]
-m: 以MB为单位
-g: 以GB为单位
文件系统空间占用等信息的查看工具:
df [OPTION]... [FILE]... -H 以1000为单位
-T 文件系统类型 -h: human-readable
-i:inodes instead of blocks
-P: 以Posix兼容的格式输出
查看某目录总体空间占用状态: du [OPTION]... DIR
-h: human-readable
- s: summary
工具dd
dd命令:convert and copy a file
用法:
dd if=/PATH/FROM/SRC of=/PATH/TO/DEST
bs=#:block size, 复制单元大小
count=#:复制多少个bs
1 of=file 写到所命名的文件而不是到标准输出
2 if=file 从所命名文件读取而不是从标准输入
3 bs=size 指定块大小(既是是ibs也是obs)
4 ibs=size 一次读size个byte
5 obs=size 一次写size个byte
6 cbs=size 一次转化size个byte
7 skip=blocks 从开头忽略blocks个ibs大小的块
8 seek=blocks 从开头忽略blocks个obs大小的块
9 count=n 只拷贝n个记录
conv=conversion[,conversion...] 用指定的参数转换文件。
转换参数:
ascii 转换 EBCDIC 为 ASCII
ebcdic 转换 ASCII 为 EBCDIC
block 转换为长度为 cbs 的记录,不足部分用空格填充。
unblock 替代cbs长度的每一行尾的空格为新行
lcase 把大写字符转换为小写字符
ucase 把小写字符转换为大写字符
swab 交换输入的每对字节。
noerror 出错时不停止
notrunc 不截短输出文件。
sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐
磁盘拷贝: 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
举例如下
有二进制文件 fileA, size>2K。现在想从第64个字节位置 开始读取,需要读取的大小是128Byts。又有fileB, 想把上 面读取到的128Bytes写到第32个字节开始的位置,替换 128Bytes,请问如何实现?
#dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc
备份:
dd if=/dev/sdx of=/dev/sdy
将本地的/dev/sdx整盘备份到/dev/sdy
dd if=/dev/sdx of=/path/to/p_w_picpath
将/dev/sdx全盘数据备份到指定路径的p_w_picpath文件
dd if=/dev/sdx | gzip >/path/to/p_w_picpath.gz 备份/dev/sdx全盘数据,并利用gzip工具进行压缩,保存到指定路径
恢复:
dd if=/path/to/p_w_picpath of=/dev/sdx
将备份文件恢复到指定盘
gzip -dc /path/to/p_w_picpath.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将无法挂载,创建和拷贝操作 无法执行
得到最恰当的block size
dd if=/dev/zero bs=1024 count=1000000
of=/root/1Gb.file
dd if=/dev/zero bs=2048 count=500000
of=/root/1Gb.file
dd if=/dev/zero bs=4096 count=250000
of=/root/1Gb.file
dd if=/dev/zero bs=8192 count=125000
of=/root/1Gb.file
通过比较dd指令输出中所显示的命令执行时间,即可确定系统 最佳的block size大小
测试硬盘读写速度
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000 通过上两个命令输出的执行时间,可以计算出测试硬盘的读/写 速度
修复硬盘
dd if=/dev/sda of=/dev/sda 当硬盘较长时间(比如1,2年)放置不使用后,磁盘上 会产生消磁点。当磁头读到这些区域时会遇到困难,并可 能导致I/O错误。当这种情况影响到硬盘的第一个扇区时 ,可能导致硬盘报废。上边的命令有可能使这些数据起死 回生。且这个过程是安全,高效的。
【2】用户配额 设置 raid卡 的 级别 以及raid卡的设置 raid 5
配置配额系统
综述 在内核中执行 以文件系统为单位启用 对不同组或者用户的策略不同 根据块或者节点进行限制 执行软限制(soft limit) 硬限制(hard limit) 初始化 分区挂载选项:usrquota、grpquota 初始化数据库:quotacheck
为用户设定配额
1 执行开启或者取消配额:
quotaon、quotaoff
2 直接编辑配额:
edquota username
3 在shell中直接编辑:
setquota usename 4096 5120 40 50 /foo
4 定义原始标准用户
edquota -p user1 user2
报告配额状态
报告
用户调查: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卡的 优势
1 提高IO能力: 磁盘并行读写
2 提高耐用性; 磁盘冗余来实现 级别:多块磁盘组织在一起的工作方式有所不同 R
AID实现的方式:
外接式磁盘阵列:通过扩展卡提供适配能力
内接式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-01、
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/md1、/dev/md2、 /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