高级文件系统的管理

接上一篇文章http://www.178linux.com/40874

移动介质

    挂载意味着 使外来的文件系统看起来如同是主目录树 的 一部分

    访问前、介质必须被挂载

    摘除时,介质必须被卸载

    按照默认设置,非根用户只能挂载某些设备(光盘、DVD、软盘、USB等)

    挂载点通常在/media或/mnt下

使用光盘

    在图形环境下自动启动挂载/run/media/<user>/<label>

    否则就必须被手工挂载

        mount /dev/cdrom /mnt/

    eject命令卸载或弹出磁盘     eject -t命令安装或弹入光盘

blob.png

在图形界面下,设置CD/DVD选项,链接使用物理驱动器,然后执行eject命令,光驱会弹出

    创建ISO 文件

        cp /dev/cdrom /root/centos7.iso 生成的ISO文件,挂载之后可以正常使用

[root@localhost ~]# cp /dev/sr0 /testdir/centos7.iso
[root@localhost ~]# file /testdir/centos7.iso 
/testdir/centos7.iso: # ISO 9660 CD-ROM filesystem data 'CentOS 7 x86_64' (bootable)
[root@localhost ~]# mkdir /mnt/iso
[root@localhost ~]# mount /testdir/centos7.iso /mnt/iso/
mount: /dev/loop1 is write-protected, mounting read-only

blob.png

        mkisofs -r -o /root/etc.iso /etc 把etc目录打包成ISO文件  挂载之后就可以使用了  跟上面的步骤一致

    刻录光盘

        wodim –v –eject centos.iso

挂载USB介质

    被内核探测为SCSI 设备

        • /dev/sdaX 、/dev/sdbX 、或类似的设备文件

    在图形环境中自动挂载

        • 图标在[ 计算机] 窗口中创建

        • 挂载在/run/media/<user>/<label>

    • 手动挂载

    • mount /dev/sdb1 /mnt

常见工具

    内存空间使用状态:

        free [OPTION]

            -m: 以MB 为单位

            -g: 以GB 为单位

blob.png

    文件系统空间占用等信息的查看工具:

        df [OPTION]… [FILE]…

            -H 以1000为单位

blob.png

            -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

        of=file 写到所命名的文件而不是到标准输出

        if=file 从所命名文件读取而不是从标准输入

        bs=size 指定块大小(既是是ibs 也是obs)

        ibs=size 一次读size 个byte

        obs=size 一次写size 个byte

        cbs=size 一次转化size 个byte

        skip=blocks 从开头忽略blocks 个ibs 大小的块

        seek=blocks 从开头忽略blocks 个obs 大小的块

        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=31conv=notrunc

    备份:

 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 将无法挂载,创建和拷贝操作无法执行。

    得到最恰当的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 错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数据起死回生。且这个过程是安全,高效的。




高级文件系统管理

配置配额系统

    综述

    • 在内核中执行

    • 以文件系统为单位启用

    • 对不同组或者用户的策略不同

    根据块或者节点进行限制

    • 执行软限制(soft limit)

    • 硬限制(hard limit)

    初始化

    • 分区挂载选项:usrquota 、grpquota

    • 初始化数据库:quotacheck

 为用户设定配额

    执行

    • 开启或者取消配额:quotaon 、quotaoff

    • 直接编辑配额:edquota username

    • 在shell 中直接编辑:

        setquota usename 4096 5120 40 50 /foo

    • 定义原始标准用户

        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

    提高IO 能力:

        磁盘并行读写

    提高耐用性;

        磁盘冗余来实现

    级别:多块磁盘组织在一起的工作方式有所不同

    RAID实现的方式:

        外接式磁盘阵列:通过扩展卡提供适配能力

        内接式RAID :主板集成RAID控制器

        安装OS 前在BIOS里配置

    软件RAID:通过OS实现

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 #: 指明空闲盘 的个数

    -D :显示raid 的详细信息;

          mdadm -D /dev/md#

    管理模式:

        -f: 标记指定磁盘为损坏

        -a: 添加磁盘

        -r: 移除磁盘

    观察md 的状态:

        cat /proc/mdstat

软RAI配置示例

    使用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 激活

    强制启动:mdadm –R /dev/md0

    删除raid 信息:mdadm –zero-superblock /dev/sdb1

小练习:创建一个可用空间为1G 的RAID1 设备,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup

先创建三个分区大小都为10G的分区,然后把硬盘类型改为raid
mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 -c 128K /dev/sdc{1,2} /dev/sdb2    #创建raid1 一个备用盘,块大小128k
mdadm -D /dev/md0            #显示raid的详细信息
cat /proc/mdstat             #查看raid组创建的信息
mkfs.ext4 /dev/md0            #格式化raid组md0磁盘
mkdir /backup                 #创建一个文件夹
vim /etc/fstab               #将挂载的信息写到配置文件中
UUID=bd0df058-4d13-40cf-b635-cb7390e7ba25  /backup      ext4     defaults 0 0
mount -a                      #重新读取配置文件,是配置生效
mdadm -Ds /dev/md0 > /etc/mdadm.conf        #保存配置文件

 一些相关命令的总结

raid5实现

1、fdisk /dev/sdb

/dev/sdb1

dd if=/dev/sdb of=/dev/sdd bs=1 count=512

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 00

5、mount -a

6、mdadm -D /dev/md0  查看状态

cat /proc/mdstat

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

清除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

原创文章,作者:旧城以西,如若转载,请注明出处:http://www.178linux.com/42885

(0)
旧城以西旧城以西
上一篇 2016-09-08
下一篇 2016-09-08

相关推荐

  • 浅谈bash shell 变量

    一、简述 变量是指内存空间的命名,指向内存中一个或一组地址。bash shell中的变量属于弱类型变量,使用变量无需声明、不需要指定类型,默认为字符型变量。 二、变量命名、赋值、引用 (1)命名规则:     1.只能使用字母,数字,下划线;并且不能使用数字开头。     2.不…

    Linux干货 2016-08-15
  • WORD文档格式要求与linux学习规划

    WORD文档格式要求 一、封面               1、活动名称(隶书,小初号字,加粗)               2、主办单位、策划日期(宋体、3号字) 二、目录    &nbs…

    Linux干货 2013-06-20
  • nginx配置文件中文文档

    Nginx配置参数中文说明。 #定义Nginx运行的用户和用户组user www www; #nginx进程数,建议设置为等于CPU总核心数。worker_processes 8; #全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]error_log /var/log/nginx/error…

    Linux干货 2017-08-08
  • http服务之二

    httpd http协议: http事务:    请求:request    响应:response 报文语法格式: request报文 <method> <request-URL> <version>     <he…

    Linux干货 2016-10-21
  • N25第五周作业

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; ]# grep -E '^[[:space:]]+.*' /boot/grub/grub.conf 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;…

    Linux干货 2017-01-08
  • iptables学习笔记   Netfilter:是Linux操作系统核心层内部的一个数据包处理模块。   Hook point:数据包在Netfilter中的挂载点。(PRE_ROUTIN   ,INPUT,OUTPUT,FORWARD,POST_ROUTING)   iptables 规则组成:四张表+五条链(Ho…

    Linux干货 2016-12-05