欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

马哥 10_02 _Raid及mdadm命令之二 有大用

IDE:它是并行的 又叫ata,虽然它们不完全一样  ,IDE太古老,接近淘汰了

sata :串行ata  (serial  ata)

SCSI:并行的

SAS:串行SCSI




逻辑RAID:

/dev/md#

/dev/md1

/dev/md2


 阵列 就是 RAID 盘的意思

md: (需要内核模块) (multi disks)

mdadm:(md admin)(md 管理器)将任何块设备做成RAID    

   (试验时可以在一个硬盘上的任意分区上做,但是没有意义的,因为同一块盘,只有一个I/O,所以速度无提升,这块盘坏了,所有文件同时也会丢失的)

模式化的命令:

    创建模式

            -C  create

                专用选项:

                    -l:级别(level指 0  或 1 或 5 或 1+0这些)

                    -n:设备个数(num)

                    -a {yes|no}:自动为其创建设备文件(auto)

                    -c: 指定chunk 大小,条带的时候,每次分的数据块大小,默认64kb,一般是2的整数次方倍2^n

                            软RAID,每次都要计算下,倒底相当于多少个磁盘块

                    -x #: 指定空闲盘个数

                   

        

    管理模式

            --add (-a),--remove(-r),--fail  (-f) 

 

                    mdadm /dev/md# --fail /dev/sda7  表示把 /dev/md# 阵列中的 /dev/sda7  模拟损坏

                                                  

   监控模式

            -F  floow monitor

                                             

    增长模式

            -G grow

    装配模式

            -A assemble(装配 组合)

查看RAID陈列的详细信息

mdadm -D /dev/md#

            (--detail)

  

停止阵列(停用陈列):

        mdadm -S /dev/md1

                    --stop




RAID0  

        2G:

                4: 512MB

                2: 1G

RAID1

        2G

            2:2G

            


watch: 周期性(阶段性)的执行某命令,并以全屏方式显示结果    实时查看

            -n #:指定周期长度,单位为秒,默认为2

格式: watch -n # 'COMMAND'   


将当前 RAID 信息保存至配置文件,以便以后进行装配

mdadm -D --scan > /etc/mdadm.conf

以后装配就使用 -A来装配, (不用指设备了  直接  mdadmin -A 阵列名  )  (比如 mdadmin -A /dev/md1)





RAID5:

        2G: 3个   1G (创建一个2G的raid5,且有一个空闲盘,需要4个1G的)



image.png



SAS SCSI 一根总线上可以接多块盘

存储目标叫 target

适配器叫 initiator


IDE可以连两块盘 一主一从

SATA只可以连一块盘 

SCSI可以连多个盘


image.png


image.png


image.png


image.png


image.png


image.png



image.png



image.png



image.png


image.png


image.png


image.png


一般不建议在生产环境中使用软 RAID,建议在生产环境中使用硬RAID


image.png



image.png




# fdisk -l 

image.png

# mdadm -C /dev/md0  (这一步其实是以后做的 因为 现在 还没有硬件(即分区) 来规划作 /dev/md0)

image.png


# mount



image.png


下面做一个 2G的 RAID0


# fdisk /dev/sda

image.png


image.png


image.png


,

软raid 使用 fd


image.png

image.png

# partprobe /dev/sda

# cat /proc/partitions

image.png


# mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sda{5,6}


(下面提示是 /dev/sda5 以前用过 有数据,问是否覆盖)

image.png


# cat /proc/mdstat  (会显示当前系统上所有处于启用状态的RAID设备)

image.png

(在创建 raid 之前不能格式化,此时 mdadm 已经创建了 raid)


# mke2fs -j /dev/md0

image.png


image.png


# mount /dev/md0 /mnt

# ls /mnt

image.png


下面做一个 2G的 RAID1

# fdisk /dev/sda

image.png

image.png


image.png

# !par

# cat /proc/partitions

image.png




# mdadm -C /dev/md1 -a yes  -n 2 -l 1 /dev/sda7  /dev/sda8

image.png

# cat /proc/mdstat

# cat /proc/mdstat

镜像要同步 同步完成后 磁盘就可以使用了 (其实后台是自动同步的,即使这里看了没有同步完,也没关系,应该等它同步完成吧,(但我个人感觉需同步完才能使用))

image.png


# cat /proc/mdstat

image.png


# fdisk -l 

image.png



# mke2fs -j /dev/md1

image.png


# mount /dev/md1 /media

# cd /media

# ls    (看到lost+found 就可以看到一个新分区了)

image.png

# cp /etc/inittab /media

# cd /media 

# ls 

image.png


#mdadm -D /dev/md1  -D(--detail)可以显示所指定的RAID设备的详细信息

image.png

# mdadm --detail /dev/md1              -D(--detail)可以显示所指定的RAID设备的详细信息

image.png

image.png


#mdadm -D /dev/md0

image.png


# mdadm /dev/md1 -f /dev/sda8 (-f (--fail)(--set-faulty)表示模拟损坏)

image.png

# mdadm --detail /dev/md1

image.png

# ls 

# cat inittab

image.png  可以正常看文件

image.png


# mdadm --detail /dev/md1

image.png



# mdadm /dev/md1 -r /dev/sda8 (-r (--remove)表示移除) (如果是硬 RAID,那就把硬盘拔掉吧,拿走吧)

image.png

# mdadm --detail /dev/md1

image.png


# mdadm /dev/md1 -a /dev/sda9 (-a (--add)表示增加盘)(增加的盘要与以前的盘大小一致)

image.png


# mdadm --detail /dev/md1

image.png


# cat /proc/mdstat  (会显示当前系统上所有处于启用状态的RAID设备) (此时正在恢复数据)

image.png

# cat /proc/mdstat  (会显示当前系统上所有处于启用状态的RAID设备)

image.png



image.png

此时同步完成了  (要等到同步完成,如果同步未完成,另一个正常的好盘损坏了,就麻烦大了)


# ls 

image.png


# cat inittab  这个文件可以正常访问

image.png

image.png


# mdadm /dev/md1 -f /dev/sda7 (-f (--fail)表示模拟损坏)

image.png


# mdadm --D /dev/md1

image.png


sda7损坏了,照样可以访问这个文件

# cat inittab  这个文件可以正常访问

image.png

image.png


# cd

# umount /media/


image.png



# cat /proc/mdstat

image.png

# mdadm -S /dev/md1  停止阵列(停用陈列):

image.png

#cat /proc/mdstat

image.png

此时,如果删掉 /dev/md1,陈列彻底消失 

image.png

这里因为是教程 没有删掉  /dev/md1

# mdadm -A /dev/md1  (-A 装配模式)  (需要跟上磁盘见下一个命令)

image.png


# mdadm -A /dev/md1 /dev/sda7 /dev/sda9

image.png

# cat /proc/mdstat

image.png


#mdadm -D /dev/md1  

image.png



mdadm 有个功能,就是在某个磁盘坏的时候 发邮件给管理员(当前系统某个用户)

image.png


image.png


# mdadm /dev/md1 -a /dev/sda8

image.png


#mdadm -D /dev/md1  

image.png


# mdadm /dev/md1 -a /dev/sda7

image.png

#mdadm -D /dev/md1  

image.png


# cat /proc/mdstat

image.png



# man watch

image.png


# watch 'cat /proc/mdstat'  监控一个命令的执行 (默认2秒刷新执行,并在屏幕上显示执行的结果)

image.png

image.png


# mdadm /dev/md1 -f /dev/sda9

image.png

# mdadm -D /dev/md1

image.png


# watch 'cat /proc/mdstat'

image.png

image.png


image.png

# mdadm -D --scan  扫描 显示当前主机上 每个RAID设备

image.png

# mdadm -D --span > /etc/mdadm.conf

image.png  (保存到这个主配置文件)

以后重新装配的时候,就不用再指定设备了,它会自动读取这个配置文件并装配的


# mdadm -S /dev/md1

image.png

# mdadm -A /dev/md1 (此时可以自动装配,不需指定磁盘)

image.png




# man mk2fs

image.png

image.png

stride 是 trunk 除以 block 的商,这种方式格式化,可以优化软RAID性能,不用计算每次相当于多少个block(不用计算每次条带倒底是多大)


# mdadm -D /dev/md1

image.png


# cat /proc/mdstat

image.png


# umount /mnt



# mke2fs -j -E stride=16 -b 4096 /dev/md0   (此时性能略有提升,尤其是非常繁忙的场景下)(stride 条带倍数 就是trunck 除以 block块大小的商) (这种方式 肯定可以优化软raid的性能,不用每次计算条带倒底有多大;;;否则每次truck的时候,会计算条带倒底有多大)

image.png


trunk 对镜像(raid1)意义不大,但对raid0 raid5,还是有一定的作用的,应该指定trunk 指定条带




普通分类: