一、RAID(Redundant Array of Tnexpensive Disks)廉价磁盘冗余阵列,将多个硬盘按照一定次序组合起来,在操作系统上仍以一个硬盘存在使用
    RAID有多个级别,下面分别介绍:
    liner 模式:是串行的磁盘阵列,没有读写能力的提升。
          如 想用100G的盘存放数据,而只有两个60G的硬盘,则将2块在liner模式硬盘串行起来,先把第一块硬盘存满后,才会存入第二块硬盘。
    0 :多个等大的硬盘并行排列,将数据分成固定大小的块(chunk),分别存入磁盘,读取性能好,但没有冗余能力,因此,若是一个磁盘坏掉,则不可用。可用空间是 size*n(个数)
    1 :需要组合至少2块硬盘,在这里做镜像使用。
        将数据分成固定大小的chunk,分别在两块硬盘上存储,也就是说硬盘2 是硬盘1 的镜像。读取性能好,因为要将数据写两次在硬盘上,所以写入性能与之有一块硬盘一样。
        有冗余,当其中一块硬盘坏掉时,仍可以使用。但空间浪费大,可用率是1/2
    4 : 需要组合至少3块硬盘,其中一块用来存放剩下两块存放数据的循环冗余校验。允许有一块可以坏掉。读取写入性能有提高,可以冗余
        若是硬盘1 坏掉,则可根据硬盘2 和校验盘来恢复1的数据;同理可恢复2 的数据;若校验盘坏掉,只用使用1、2再重新生成校验码。
        即使如此,在一个硬盘坏掉时,读取写入操作前要先进行计算,给其余磁盘带来巨大压力。
    5 :组织最少3块硬盘,与4 一样,不同的是这三块盘是循环来存放校验码,而不是只用一个盘存放。允许坏一个盘,有冗余。
        可用空间为 [(n-1)/n]*size
    6 :组合至少4块盘,可以坏掉2个盘(用2个盘存放校验码),可用空间也是 [(n-1)/n]*size
    10 :组合至少4块盘,分别用两块硬盘组合raid 1,再将两个raid 1 组合成一个raid 0,允许两个raid 1 分别坏一个盘。空间利用率是1/2。
   1、实现机制
   hardware 实现: 使用BIOS里的raid 芯片或PCI插槽 或HOST/ADAPTER 主机适配器,不同的主机适配器用不同的接口。
           生产环境中,使用的都是硬raid。
           现今 raid 都被叫做独立冗余磁盘阵列。
   
   software 实现:通常是内核的一个模块,实现raid  的分区、划分、组合等机制。软raid 使用一般不怎么靠谱。但在虚拟机里面都是用软raid 模拟。
     #mdadm 使用户与内核交互,编辑规则,进行管理。
     mdadm模式:
       Assemble: 装配模式。将已停掉的或移动来的软raid设备,在本机上装配,重新使用。
       Create :创建模式。用于创建新的软raid设备。
       Follow or Moniter : 监控模式。
       Grow : 增长模式。
       Manage: 管理模式。(如某个硬盘坏了,则将其移除并加载一个新的硬盘)
    mdadm 选项:
         -A : 在装配模式下
         -C : 在创建模式下
         -F : 在监视模式下
         -G : 在增长模式下
         -D :监控某个raid设备的详细信息
         --add(添加),--fail(破坏) ,--remove(移除) ,--detail(详细信息) 则自动识别为管理模式下。
         -a yes : 若创建的raid 不存在,则自动创建
         -v : 显示详细信息
         -s : 扫描
         -n :用于指定创建raid设备有几个磁盘设备(不包括空闲盘)
         -x : 用于指定空闲盘的个数(对 raid无用,对监控模式也无用)。
         -c : 指定chunk 片的大小,默认为64k
         -l : 指定创建raid设备的级别。liner ,0 ,1,4,5,6,10等
      2、软raid的实现
         (1)创建:mdadm -C /dev/md1 -l 0 -n 2 -a yes /dev/sdc6 /dev/sdc7
         (2) 格式化:mke2fs -j /dev/md1 
         (3) 挂载: mount /dev/md1 /mnt
         用 cat /proc/mdstat 查看raid设备
         3、 停用设备:
           停用时应该先卸载,再停用
           mdadm -S 停用设备 
          
      4、若想raid设备有效,并且不用手动重新创建,则把设备信息写入 /etc/mdadm.conf 文件
          mdadm -D -s >> /etc/mdadm.conf
          若想raid设备/dev/md1开机自动挂载,则写入/etc/fstab文件中。
            
            mke2fs -j -b 2048 -E strid=32 /dev/md1
            指明block块大小为2k,明确说明chunk/block=32,即 chunk为64k.
   二、文件系统的访问控制列表FACL
       文件系统挂载时,默认不支持acl功能(操作系统默认是支持acl的)。
         1、如何让文件系统挂载后支持acl?
         (1) :mount -o acl /dev/md1 /mydata
        
         (2): tune2fs -o acl /dev/md1,这样一来,在挂载时便不用指定 -o acl 选项了。
         2、
           getfacl : 获取某个文件的访问控制列表,后跟文件名
           
           setfacl : 设置ACL
             -m :设定访问控制列表
            setfacl -m u:USERNAME:mode(权限) FILENAME 设定用户对文件的acl
            setfacl -m G:GROUPNAME:mode(权限) FILENAME  设定组对用户的acl
             -x : 取消acl
                 setfacl -x u:USERNAME FILENAME   取消用户对文件的acl
                 setfacl -x g:GROUPNAME FILENAME  取消组对文件的acl
        3、  acl的生效次序:如centos 对 redhat.file 文件的acl生效次序
            (1):查看centos 是否为redhat.file的属主,若是,则以属主权限生效
            (2):查看centos 自己的acl,是否有对文件的权限,若有,则以自己的acl生效
            (3):查看centos 是否为redhat.file的属组,若是,则以属组权限生效
            (4):查看关于组的acl,centos是否为acl组,若是则以acl组权限生效
            (5):查看其它
        4、setfacl -m d:u:centos:rw- /redhat.dir d,指明的是centos 对/redhat.dir目录的默认权限,通常只有在此目录下创建新文件时,centos才会对其生效
           但凡文件,默认继承时会把执行权限去掉
           若目录有rwx,其下文件默认继承时仍没有执行权限
         5、 setfacl -m u:centos:rwx /redhat.dir 此时文件不会继承目录的权限
             setfacl -R -m u:centos:rwx /redhat.dir 这样文件就会继承目录的权限了
         6、即便某个目录有多个访问控制列表,用tar归档文件时,默认不会保存文件的acl,再展开时就不存在了。
            而用 tar --acl 归档,就可以保存文件的acl了。
            
            好了,已经很晚了,就不多说了,以后继续聊。
               曾经蹉跎而过的光阴,已经无法挽回;所剩下的就是除了偶尔的缅怀,更多的是忘记。
                     我更相信时间,可以证明一切可以或者不可以的可能!!!