1、创建一个10G分区,并格式为ext4文件系统;
(1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;
第一步先在磁盘上创建分区:fdisk /dev/sdc
n –> e –> 5 –> default –> +10G –> w
第三步创建文件系统:mke2fs -t ext4 -b 2048 -m 2 -L MYDATA -o acl /dev/sdc5
(2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳;
mount -o noexec,atime /dev/sdc5 /data/mydata
2、创建一个大小为1G的swap分区,并创建好文件系统,并启用之;
第一步先在磁盘上创建一个1G的swap分区:fdisk /dev/sdc6
n –> e –> 6 –> default –> +1G –> t –> 82 –>w
第二步内核加载:partx -a /dev/sdc执行两遍
第三步创建swap文件系统:mkswap /dev/sdc6
第四步查看系统内存空间:free -h或是cat /proc/swaps
第五步开起swap交换分区:swap on /dev/sdc6 ;注:加 -a 表示定义在/etc/fstab/ 文件上的所有swap设备
第六步查看和关闭:free ; swapoff /dev/sdc6
3、写一个脚本
(1)、获取并列出当前系统上的所有磁盘设备;
(2)、显示每个磁盘设备上每个分区相关的空间使用信息;
#!/bin/bash
fdisk -l | grep “^/dev/sd.*” | cut -d” ” -f 1
df -h | grep “/dev/sd.*”
4、总结RAID的各个级别及其组合方式和性能的不同;
独立磁盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余
阵列(Redundant Array of Inexpensive Disks).RAID最初的基本思想是把多块相对便宜的硬盘组织结合起来,成为硬盘阵列组,使组合成的这个阵列组的性能超过一块价格昂贵、容量巨大的硬盘。但随着RAID的发展,人们发现组成磁盘阵列事实上非常昂贵,于是折衷把“Inexpensive”改为“Independent”。
对于磁盘性能来说,增强性能意味着提高IO能力,即单位时间内的数据处理量更
大,说白了就是提高处理速度。对于数据可靠性来说,增强可靠性意味着提高容错能力及磁盘冗余能力,这样磁盘损坏了数据还能正常存储。除此之外,RAID相比单块磁盘还有增加磁盘容量、增强数据集成度的好处。
RAID提高IO能力是通过磁盘并行读写实现,而提高耐用性(增强数据可靠性)则
是通过磁盘冗余来实现。
总结来说,独立磁盘冗余阵列(RAID, Redundant Array of Independent Disks)就是通过
把多块磁盘组织起来,以实现增强磁盘读/写性能(即增大处理量)、增强容错功能及磁盘冗余能力、增强数据集成度、增大容量的功能,这是相比于单块磁盘而言的。操作系统将磁盘阵列逻辑为一个硬盘,因此对于用户来说只需知道这是可存储的一块硬盘即可。
RAID各级别特性
磁盘阵列RAID有标准RAID及混合RAID。以下介绍不同版本的RAID.
标准RAID
RAID-0
RAID-0又称条带卷(strip),RAID-0是将多块硬盘(两块以上)平行组织起来当做一块硬盘使用,将数据用RAID的控制器分割成chunk后条带化地存储进多块硬盘中。在所有级别的RAID中,RAID-0的读、写性能最佳。理论上,RAID-0的读写性能是单块硬盘的N倍,事实上受到controller分割或组合chunk在时间上的限制。但是,RAID-0是用降低数据存储可靠性换来存储器读、写性能的提升,因此RAID-0既不具备容错能力,也没有冗余能力,只要有一块硬盘损坏,则整个系统上的数据都会丢失。所以在对数据安全性要求不高的场合下才会使用RAID-0。
RAID-0特点总结如下:
(1)读、写性能提升
(2)可用空间:N*min(S1,S2,…)
(3)无容错/无冗余能力
(4)最少磁盘数:2,2+
RAID-1
RAID-1又称镜像卷,即将多块硬盘(两块以上)组织起来,当开始存储数据时,将要存储的数据复制成多份,分别存储进不同的磁盘中。因此,虽然使用RAID-1在读性能上有所提升,但写性能略有下降。但使用RAID-1还有一个好处,那就是数据存储的可靠性最佳,因为同样的数据在硬盘级别上存储了多份。
RAID-1特性总结如下:
(1) 读性能提升、写性能略有下降
(2) 可用空间:1*min(S1,S2,…)
(3) 有容错、冗余能力:(N-1)块硬盘
(4) 最少磁盘数:2, 2+
RAID-2
RAID-2是RAID-0的改良版,其以汉明码(Hamming Code)的方式对数据进行线性编码并存储至不同硬盘中,并加入了错误修正码(ECC,Error Correction Code),因此存储的数据量比原始数据量大一些。RAID-2至少需要3块硬盘,虽然提高了数据可靠性,但使读、写性能大大下降,而且RAID-2具体实施技术复杂,因此在商业环境中很少使用。
RAID-3
RAID-3采用Bit-interleaving(数据交错存储)技术,将数据进行编码后,检查这些数据的同位置比特,并将同位置的比特存储分别独立存储在一块硬盘上。缺点是读取一小段数据可能需要对所有硬盘进行访问,导致读、写性能大大下降,因此一般RAID-3适于需要读取大量数据时使用。
RAID-4
RAID-4专门用一块硬盘当做校验盘,校验盘上存储的是校验码(可以是数据异或的结果)。RAID-4可以说是对RAID-1在存储性能上的改进,但问题是每次访问数据时都需要从校验盘上取出对应的同比特数据进行核对,因此对校验盘来说可能会造成系统IO性能瓶颈,而这一缺陷也限制了RAID-4的存储性能。除此之外,RAID-4还有一个缺陷,那就是最多只能损坏一块硬盘。当有一块硬盘损坏时,工作状态为降级模式。
RAID-4总结如下:
(1) 除校验盘外,读、写性能提升
(2) 可用空间:(N-1)*min(S1,S2,…)
(3) 有容错能力:1块硬盘
(4) 最少磁盘数:3,3+
RAID-5
RAID-5采用了循环存储校验码的机制,力求兼顾磁盘读、写性能及数据可靠性,可视为RAID-0和RAID-1的折衷方案或者是对RAID-4存储性能这一问题的改进。
RAID-5校验码存放有左对称和有对称两种布局,一般采用左对称布局。RAID-5至少需要3块磁盘,但RAID-5和RAID-4一样,最多只允许1块硬盘损坏,因此数据存储的安全性依然不够高,后来发展出了以下要介绍的RAID-6。另外,RAID-5和RAID-4相同,当有一块硬盘损坏时,工作为降级模式。
RAID-5特性总结如下:
(1) 读、写性能提升
(2) 可用空间:(N-1)*min(S1,S2,…)
(3) 有容错能力:1块磁盘
(4) 最少磁盘数:3,3+
RAID-6
相对于RAID-5来讲,RAID-6也采用了循环存储校验码的机制,不同的是,RAID-6相当于使用两块校验盘来存储呢校验码,因此任意两块硬盘损坏不会影响数据的完整性,数据存储的可靠性非常高。
(1) 读、写性能提升
(2) 可用空间:(N-2)*min(S1,S2,…)
(3) 有容错能力:2块硬盘
(4) 最少磁盘数:4, 4+
混合RAID
RAID-10
RAID-10先将多块硬盘两两一组做成RAID-1(即镜像卷),再把所有的RAID-1做成RAID-0(即条带卷)。这种存储方式比较可靠。
RAID-10特性总结如下:
(1) 读、写性能提升
(2) 可用空间:N*min(S1,S2,…)/2
(3) 有容错能力:每组镜像最多只能坏一块
(4) 最少磁盘数:4, 4+
RAID-01
先把多块硬盘分成两组做成RAID-0(即条带卷),再把这两组做成RAID-1(即镜像卷)。RAID-01只要有一个硬盘损坏,同组RAID-0的其他硬盘将停止工作,只剩下其他组的硬盘工作。如下图所示,即使第一组RAID-0中的Disk0和第二组RAID-0的Disk3同时损坏,因为每组RAID-0的控制器分割成chunk的机制不同,所以同样无法恢复数据,数据可靠性很低。
RAID-01特性总结如下:(m代表RAID-0的组数)
(1) 读性能提升,写性能略有下降
(2) 可用空间:N*min(S1,S2,…)/m
(3) 有容错能力:最多只允许(m-1)组硬盘损坏
(4) 最少磁盘数:4, 4+
RAID-50
RAID-50是先把多块硬盘做成RAID-5,再把各RAID-5组做成RAID-0。每组RAID-5至少需要3块硬盘,因此构成多组RAID-5至少需要6块硬盘。例如:有6块硬盘,每3块硬盘构成一个RAID-5组,再把两组RAID-5组成RAID-0。
spacer.gif
RAID-60
RAID-60是先把硬盘做成RAID-6,再把各RAID-6组做成RAID-0。每组RAID-6至少需要4块硬盘,因此构成多组RAID-6至少需要8块硬盘。例如:有12块硬盘,每4块硬盘构成一个RAID-6组,再把两组RAID-6组成RAID-0。
JBOD
JBOD(Just a Bunch Of Disks)只是将多块硬盘的空间合并为一个大的连续逻辑的硬盘空间,其可用空间为组合成JBOD的各个硬盘空间之和。不具备容错、冗余能力,数据可靠性和RAID-0相当。
RAID-7
RAID-7是Storage Computer Corporation的专利硬件产品名称,并非公开的标准。RAID-7是RAID-3、RAID-4的强化版,存储性能极为强大。
需要注意的是,RAID2、3、4较少实际应用,因为RAID5已经涵盖了所需的功能,因此RAID2、3、4大多只在研究领域有实现,而实际应用上则以RAID5为主。
5、创建一个大小为10G的RAID1,要求有一个空闲盘,而且CHUNK大小为128k;
第一步创建2个10G的分区:fdisk /dev/sdc
n –> e –> 7 –> default –> +10G –> t –> 7 –> fd
n –> e –> 8 –> default –> +10G –> t –> 8 –> fd –> w
第二部内核加载分区:partx -a /dev/sdc 执行两遍
第三部分查看RAID的详细信息:mdadm -D
第四步创建RAID1:mdadm -C md0 -n 1 -x 1 -a yes -c 128 -l raid1 /dev/sdc7 /dev/sdc8
第五步创建文件系统:mke2fs -t ext4 /dev/md0
第六步挂载:mount /dev/md0 /md0
6、创建一个大小为4G的RAID5设备,chunk大小为256k,格式化ext4文件系统,要求可开机自动挂载至/backup目录,而且不更新访问时间戳,且支持acl功能;
第一步创建3个2G大小的分区:fdisk /dev/sdc
n –> e –> 9 –> default –> +2G –> t –> fd
n –> e –> 10 –> default –> +2G –> t –> fd
n –> e –> 11 –> default –> +2G –> t –> fd –> w
第二部内核加载分区:partx -a /dev/sdc 执行两遍
第三步创建RAID5:mdadm -C md1 -n 3 -c 256 -a yes -l raid5 /dev/sdc{9,10,11}
第四步创建文件系统:mke2fs -t ext4 /dev/md1
第五步开机自动挂载:vi /etc/fstab
底行输入:UUID=”UUID” /dev/backup ext4 acl,noatime 0 0
7、写一个脚本
(1) 接受一个以上文件路径作为参数;
(2) 显示每个文件拥有的行数;
(3) 总结说明本次共为几个文件统计了其行数;
#!/bin/bash
#
if [ $# -le 2 ] ;then
echo “Wrong is numher of parameter.”
exit 1
else
for i in $*;do
wc -l $i
done
fi
echo “Couts the number of rows for $# files.”
8、写一个脚本
(1) 传递两个以上字符串当作用户名;
(2) 创建这些用户;且密码同用户名;
(3) 总结说明共创建了几个用户;
#!/bin/bash
#
if [ $# -le 1 ];then
echo “Wrong is number of parameter.”
exit 1
else
for i in $*;do
if [[ “$i” < 2 ]];then
echo ” $i is at least two characters.”
exit 2
elif id $i &> /dev/null;then
echo “$i is exists.”
exit 3
else
useradd $i
echo “$i” | passwd –stdin $i &>/dev/null
fi
done
fi
echo “Add $# users.”
9、写一个脚本,新建20个用户,visitor1-visitor20;计算他们的ID之和;
#!/bin/bash
sum=0
for i in {1..20};do
if id version$i &> /dev/null;then
echo “version$i already exists, create terminated.”
exit 1
else
useradd version$i
fi
done
for j in $(cat /etc/passwd | grep “^version” | cut -d: -f 3);do
sum=$(($sum +$j))
done
echo $sum
原创文章,作者:N26-xiaocong,如若转载,请注明出处:http://www.178linux.com/76202
评论列表(1条)
对于raid相关的知识很多面试过程都会问到,尤其是他们之间的对比,希望能通过表格方式去看究竟差别在哪,而不仅仅是文字罗列。