高级文件系统管理的相关理解

1.RAID是什么

    RAID:Redundant Arrays of Inexpensive Disks,是指由多个磁盘合成一个阵列,来提供更好的性能,冗余或者两者都提供。在生产生活中,通常一个硬盘往往不能满足我们的存储需要,这是就需要通过RAID磁盘阵列来对磁盘进行“扩容”,来满足我们的日常需要,相比较于单一的大容量的硬盘,使用RAID阵列可以更好的节约成本到达同样的效果,所以,RAID阵列技术被广泛的应用于我们的生产生活中。

    RAID能提供的优点:

         提高IO能力

         磁盘并行读写

         提高耐用性

         磁盘冗余实现

    RAID实现方式:

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

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

         Software RAID

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

     RAID-0:0,条带卷,strip

     RAID-1:1,镜像卷,mirror

     RAID-2:

    

     RAID-5:

     RAID-6:

     RAID01:

     RAID10:

    RAID-0 读写性能提升

    可用空间N*min(s1,s2,s3…) 

    无容错能力 

    最少磁盘数2,2+

blob.png

        RAID-0阵列就是将多个磁盘组成一个大容量的“新硬盘”,数据传输过来,以trunk值分别存储到不同的硬盘中,这样每个盘都有分摊了这个数据的一部分,从而提高了“大硬盘”的存储能力,但是,有一个硬盘出现故障时,这个“大硬盘”将无法进行数据读取,从而导致大硬盘也呈现“故障”状态,RAID-0只是单纯增加硬盘容量。

    RAID-1 读性能提升,写性能略有下降

    可用空间1*min(s1,s2…)

    有冗余能力

    最少磁盘数2

blob.png

    RAID-1磁盘阵列:硬盘B作为A的镜像,当数据传输过来,A盘存储这份数据,B盘也存储这份数据,当作A盘的备份,当A盘出现故障时,B盘就顶替上去,保证了硬盘甚至于整个程序,服务的正常运行,有了冗余能力,但是,这样磁盘的利用率就变为磁盘数的1/2。

    RAID-5:读写性能提升

     (N-1)*min(s1,s2,s3…)

     有容错能力 1块磁盘

     最少磁盘数 3

blob.png

    RAID-5磁盘阵列:与RAID-4类似,用一个盘存放校验值,不过在4的基础上有了改进,在实际生产中,做校验盘的硬盘很容易损坏,经常性的读写,RAID-5,它实现了动态的存储校验值,第一次数据存储在A,B盘上,C盘存储校验值,下一次数据存储在A,C盘上,B盘存储校验值,第三次B,C盘存储数据,A盘存储校验值,轮替的进行,从而减轻了某个存储校验值的硬盘的压力,有冗余能力,当一个盘故障时,可以通过其他两个盘进行抑或操作算出故障盘的数据,也能保证程服务正常运行。

    RAID-6:最少磁盘数 4

     读写性能提升

     可用空间(N-2)*min(s1,s2…)

     用容错能力 2块磁盘

blob.png

    RAID-6磁盘阵列:使用两块硬盘作为存放校验值的盘,当其中一个存放校验值的盘故障时且一块数据盘也出现故障时,还可以通过另一个存放校验值的盘计算出故障数据盘的数据,也可以保证服务的正常运行,但在企业中运用并不多。  

    混合类型

     RAID-10 先做1,后做0

     读写性能提升

     可用空间N*min(s1,s2…)/2

     有容错能力每组镜像只能最多坏一块

     最少磁盘数 4

blob.png

        RAID-10:先做1,再做0,先使用两块磁盘进行RAID-1,保证数据有冗余性,有备份,当主盘故障时,备份盘可以顶替上,再做RAID-0,这样就可以使数据存储在不同的硬盘上,实现了对磁盘的扩容,从而既达到0的效果,又达到1的效果。

        

     RAID-01  先做0,后做1  

blob.png

    RAID-01:先做0,再做1,先将磁盘组成RAID-0阵列,实现数据分开存储,实现硬盘的扩容,再做1,即对先前做的0阵列进行1操作,为他们做备份,实现硬盘的冗余性,当主硬盘中一块故障时,备份区的硬盘能够为服务提供数据,同样保障了服务程序的正常运行,但主硬盘区和备份区域都出现故障时,这个磁盘阵列则会呈现故障状态,所以RAID-01比RAID-10性能方面还是有些差别的。 

    RAID7:可以理解为一个独立存储的计算机,自身带有操作系统和管理工具,可以独立运行,理论上性能最高的RAID模式

    

     JBOD:just a bunch of disks 

     功能:将多块磁盘的空间合并成一个大的连续空间使用

     可用空间:sum(s1+s2…)

     常用级别

     RAID-0 RAID-1 RAID-5 RAID-10 RAID-50 JBOD

    实现方式

     硬件实现方式

     软件实现方式

    Centos 6上的软件RAID实现

    结合内核中的md(multi devices)


Mdadm:模式化工具

     语法格式:mdadm [mode] <raiddevice> [options]<component-device>

blob.png

     支持的RAID级别:LINERA RAID0 RAID1 RAID4 RAID5 RAID6 RAID10

     模式:

     创建模式  -C

     装配模式  -A

     监控模式  -F

     管理模式  -f:标记指定磁盘为损坏

     -r:移除磁盘

     -a:添加磁盘

     观察md状态

     cat /proc/md#

blob.png

blob.png

     <raiddevice>: /dev/md#

     <component-devices>:任意块设备

     -C 创建模式

     -n #:使用#个块设备来创建此RAID

     -l #: 指明要创建的RAID级别

     -a{yes|no} 自动创建目标RAID设备的设备文件

     -c chunk_size 指明块大小

     -x # 指明空闲盘的个数

     -D 显示RAID详细信息

     停止md设备

     mdadm –S /dev/md#

blob.png


     watch 命令

     -n # :刷新时间,单位为秒

LVM逻辑卷管理器

     Logical Volume Manager     Version:2

     dm:device mapper  将一个或多个底层块设备组织成一个逻辑设备的模块

         /dev/dm-#

         /dev/mapper/VG_name-LV_name

         /dev/VG_name/LV_name

blob.png

  

  在硬盘上进行分区,可以满足一些情况,但这样的分区,它的存储空间容量就固定了,不能进行扩容或者其他变更分区容量的操作,这样便会给磁盘管理对来一些不便的影响,而LVM逻辑卷管理可以喊好的解决这种问题,所以,在实际生产生活中,这种技术也有相当广泛的应用。 

    通过多个物理卷来创建一个卷组,,物理卷使用固定大小的物理区域来定义,在卷组之上可以根据需要划分成多个逻辑卷。 

     Pv管理工具

     Pvs 简要显示pv信息

     Pvdisplay 详细显示信息

       Pvcreate /dev/device 创建pv

    

     Vg管理工具

     Vgs 

     Vgdisplay

            vgcreate /dev/vg# /dev/device

 

        Lv管理工具

blob.png

        lvs

        lvdisplay

             lvcreate /dev/vg# 


      

磁盘管理:

    卸载命令

    umount  /dev/device

    查看挂载情况

    findmnt mount_point

    查看正在访问指定文件系统的进程

    lsof mount_point

    fuser -v mount_point

    终止所有正在访问指定文件系统的进程

    fuser -km mount_point

blob.png

       

    文件挂载配置文件

    /etc/fstab

blob.png

每个要挂载的设备或伪文件系统

挂载点

文件系统类型

挂载选项

转储频率 0 表示不转储 1 每天都备份 2 表示每隔一天备份

自检次序 0 表示不自检 1表示优先自检


交换分区

    交换分区是系统RAM的补充

    基本设置包括:

        创建交换分区或者文件

        使用mkswap写入特殊签名

        在/etc/fstab文件中添加适当的条目

        使用swapon激活交换空间

    swapon [option]…[device]

        -a 激活所有的交换分区

        -p priority 指定优先级

    swapoff 禁用


移动介质的挂载

    访问前介质必须被挂在

    摘除前介质必须被卸载

    eject 弹出光驱

    mount /dev/cdrom /mnt/

    创建ISO文件

        cp /dev/cdrom /root/centos7.iso

        mkisofd -r -o /root/etc.iso /etc

    刻录光盘

        wodim -v -eject centos.iso


free 内存空间使用状态

    -m 以MB为单位

    -g 以GB为单位

blob.png

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

    -H 以1000为单位

    -T 文件系统类型

    -h human readable

    -i 显示节点数

    -P 以posix兼容格式显示

 blob.png


du查看某目录总体空间占用状态

    -h human readable

    -s summary

blob.png


dd工具

    dd if=/path/to/src of=/path/to/dst bs=# count=#

    bs 复制单元大小

    count 复制多少个bs

    of 写到文件中  if 从文件读取

    ibs 一次读多少个byte  obs 一次写入多少个byte 

    cbs 一次转化多少个byte

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

    seek 从开头糊了blocks个obs大小的块

    conv=conversion[,conversion…]用指定的参数转化文件

        ascii 转化EBCDIC为ascii

        ebcdic 转化ascii为ebcbic

        block 转化为长度为cbs的记录,不足用空格补充

        unblock 替代cbs长度的每一行尾的空格为新行

        lcase 把大写字符转换为小写字符

        ucase 把小写字符转化为大写字符

        swab 交换输入的每对字节

        noerror 出错时不停止

        notrunc 不截断输出文件

        sync 把每个输入块填充到ibs个字节,不足部分用空字符补齐

    dd if=/dev/sda1 of=/dev/sdc1 bs=1 count=64 skip=446 seek=446 conv=notrunc

blob.png

使用dd命令可以是实现数据的备份

    dd if=/dev/sdx of=/dev/sdy

    备份全盘数据 

    dd if=/dev/sdx | gzip > /path/to/image.gz

    数据恢复

    dd if=/path/to/image.gz of=/dev/sdx

    gzip -dc /path/to/image.gz | dd of=/dev/sdx


习题

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

对硬盘分区,并调整system id


blob.png

查看分区是否被识别

blob.png

分区格式化

blob.png

创建RAID-1

blob.png

mkfs.ext4 /dev/md/dm0

blob.png

修改/etc/fstab

blob.png

生成配置文件

blob.png

blob.png


2:创建由三块硬盘组成的可用空间为2G的RAID5设备,要求其chunk大小为256k,文件系统为ext4,开机可自动挂载至/mydata目录

创建共2G的单个分区

blob.png

blob.png

blob.png


3、创建和扩展逻辑卷

blob.png

blob.png

blob.png

blob.png

blob.png

blob.png

blob.png

blob.png



原创文章,作者:Stupid_L,如若转载,请注明出处:http://www.178linux.com/41817

(0)
Stupid_LStupid_L
上一篇 2016-08-30
下一篇 2016-08-30

相关推荐

  • 马哥教育网络班20期+第3周课程练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。  who | cut -d' ' -f1 | sort -u 2、取出最后登录到当前系统的用户的相关信息。 last | head …

    Linux干货 2016-06-26
  • 网卡相关

    ifconfig eth1 IP / ip a a IP dev eth1 修改指定网卡的IP地址   /etc/udev/rules.d/70-persistent-net.rules 设置Mac地址/网卡名配置文件,建议关机修改Mac地址,否则会造成Mac地址不匹配的情况   /etc/sysconfig/network-script…

    2017-12-18
  • Linux 命令行返回状态

    linux 执行命令后会返回一个状态码 命令执行成功返回0: 当删除一个文件并删除成功时返回的状态码为0 [root@localhost 1]# rm -rf 1_1 [root@localhost 1]# echo $? 0 命令执行失败返回1-255 当把 文件夹 1_1 重命名为1_2失败后状态码为1 [root@localhost 1]# mv 1_…

    Linux干货 2017-08-28
  • httpd2.4 应用

    练习:  (1)基于主机名实现三个虚拟主机     (2) 每虚拟主机使用独立的访问日志和错误日志 (3) 第三个虚拟主机的/admin要进行用户访问认证  (4) 在第二个虚拟主机上提供/status; (5) 在第三个虚拟主机提供路径别名/bbs,访问其它文件系统路径; (6) 尝试使用混合类型…

    Linux干货 2016-10-09
  • 基于Redis的开源分布式服务Codis

    Redis在豌豆荚的使用历程——单实例==》多实例,业务代码中做sharding==》单个Twemproxy==》多个Twemproxy==》Codis,豌豆荚自己开发的分布式Redis服务。在大规模的Redis使用过程中,他们发现Redis受限于多个方面:单机内存有限、带宽压力、单点问题、不能动态扩容以及磁盘损坏时的数据抢救。 Redis通常有3个使用途径…

    Linux干货 2015-02-25
  • 软件包管理

    rpm 与 yum 的用法 源代码:name-VERSION.tar.gz|bz2|xz VERSION: major.minor.release rpm包命名方式: name-VERSION-release.arch.rpm 例:bash-4.2.46-19.el7.x86_64.rpm VERSION: major.minor.release rele…

    Linux干货 2016-09-01

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-01 13:15

    不错,内容充实,格式优美,能迅速吸引眼球并能勾起读者继续的欲望