处理交换文件和分区


交换分区是系统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