1、创建一个10G分区,并格式为ext4文件系统;
(1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;
(2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳;
]# fdisk /dev/sdb #划出一个大小为10G的分区 ]# partx -a /dev/sdb ]# mke2fs -t ext4 -b 2048 -L MYDATA -m 2 /dev/sdb3 #格式化分区 ]# tune2fs -o acl /dev/sdb3 #添加acl特性
]# mount -o noatime,noauto /dev/sdb3 /mnt
2、创建一个大小为1G的swap分区,并创建好文件系统,并启用之;
]# fdisk /dev/sdb Command (m for help): t Partition number (1-4): 2 Hex code (type L to list codes): 82 Changed system type of partition 2 to 82 (Linux swap / Solaris) ##修改创建的分区类型 改为swap ]# mkswap /dev/sdb2 ]# swapon /dev/sdb2
3、写一个脚本
(1)、获取并列出当前系统上的所有磁盘设备;
(2)、显示每个磁盘设备上每个分区相关的空间使用信息;
#!/bin/bash # declare -a disk_dev disk_dev=$(ls /dev/[sh]d* | grep -o '/dev/sd[[:alpha:]]\>') echo -en "系统包含磁盘:\n${disk_dev[@]}\n" echo echo -en "系统磁盘分区使用情况如下:\n" fdisk -l $(ls /dev/[sh]d[a-z][0-9])
4、总结RAID的各个级别及其组合方式和性能的不同;
RAID:
old Redundant Arrays of Inexpensive Disks (廉价磁盘冗余阵列)
new Redundant Arrays of Independent Disks (独立磁盘冗余阵列)
Berkeley: A case for Redundent Arrays of Inexpensive Disks RAID
功能:
提高IO能力:磁盘并行读写;
提高耐用性:磁盘冗余来实现。但是raid不能取代数据备份,raid只是减少磁盘对于数据
的影响。人为操作数据无法恢复。
级别:多块磁盘组织在一起的工作方式有所不同;
RAID实现的方式:
外接式磁盘阵列:通过扩展卡提供适配能力
内接式RAID:主板集成RAID控制器
Software RAID:
级别:level
RAID-0:0, 条带卷,strip;
RAID-1: 1, 镜像卷,mirror;
RAID-2
..
RAID-5:
RAID-6
RAID10
RAID01
RAID-0:
读、写性能提升;
可用空间:Nmin(S1,S2,…)(所有磁盘中的最小值,下同)
无容错能力最少磁盘数:2, 2+
RAID-1:
读性能提升、写性能略有下降;
可用空间:1min(S1,S2,…)
有冗余能力
最少磁盘数:2, 2+
RAID-4:
1101, 0110, 1011 (对应位做亦或计算,相同得0,相反得1) 第三块做校验盘。 如果
一块坏了,那就是降级进行使用。缺陷:单块盘做检验盘,该盘压力过大,是性能瓶
颈。
改进方案:使用一块盘做空闲盘,热备
RAID-5:
读、写性能提升。
可用空间:(N-1)min(S1,S2,…)
有容错能力:1块磁盘
最少磁盘数:3, 3+,
原理同raid4,也可有热备盘,与raid4区别,三块盘轮流做检验盘,有左对称和右对称
方案;
多块盘做亦或运算,结果存放到校验盘,X1亦或X2亦或X3亦或X4
RAID-6:
读、写性能提升
可用空间:(N-2)min(S1,S2,…)
有容错能力:2块磁盘 循环校验
最少磁盘数:4, 4+
RAID-10:
读、写性能提升
可用空间:N*min(S1,S2,…)/2
有容错能力:每组镜像最多只能坏一块;
最少磁盘数:4, 4+
RAID-01: 先做raid0,在做raid1,容错性没有raid10好。
RAID-50,先做raid5再做raid0,最小磁盘数和raid5划分有关。RAID7:商业公司自己开发的,性能不错价格昂贵
JBOD:Just a Bunch Of Disks
功能:将多块磁盘的空间合并一个大的连续空间使用,可以存放大型单个文件。可用空
间:sum(S1,S2,…)
常用级别:RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD
选择Raid级别:RAID 012345 到底哪一种适合你,不只是成本问题,容错功能和传输
性能的考虑以及未来之可扩充性都应该符合应用的需求
5、创建一个大小为10G的RAID1,要求有一个空闲盘,而且CHUNK大小为128k;
]# ls /dev/sdc ##查看新增磁盘 /dev/sdc ]# fdisk -l /dev/sdc ##新建三个分区,大小分别为10G,注意格式要改成软raid格式fd。 ]# partx /dev/sdc ##可以查看出分区情况 # 1: 63- 20980889 ( 20980827 sectors, 10742 MB) # 2: 20980890- 41961779 ( 20980890 sectors, 10742 MB) # 3: 41961780- 62942669 ( 20980890 sectors, 10742 MB) # 4: 0- -1 ( 0 sectors, 0 MB) ]# mdadm -C /dev/md0 -n 2 -l 1 -c 128 -x 1 -a yes /dev/sdc1 /dev/sdc2 /dev/sdc3 ##使用两块盘做raid1,一块空闲盘,chunk大小为128k,自动创建raid目标设备设备文件。 mdadm: /dev/sdc1 appears to be part of a raid array: level=raid1 devices=2 ctime=Fri Jan 27 15:41:41 2017 mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90 mdadm: /dev/sdc2 appears to be part of a raid array: level=raid1 devices=2 ctime=Fri Jan 27 15:41:41 2017 mdadm: /dev/sdc3 appears to be part of a raid array: level=raid1 devices=2 ctime=Fri Jan 27 15:41:41 2017 Continue creating array? yes mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started. ]# cat /proc/partitions major minor #blocks name 8 0 20971520 sda 8 1 512000 sda1 8 2 10240000 sda2 8 3 1048576 sda3 8 4 1 sda4 8 5 1048576 sda5 8 6 8119296 sda6 8 16 20971520 sdb 8 17 208813 sdb1 8 32 36700160 sdc 8 33 10490413 sdc1 8 34 10490445 sdc2 8 35 10490445 sdc3 9 0 10482176 md0 ]# mdadm -D /dev/md0 ##可以查看出md设备的使用情况 /dev/md0: Version : 1.2 Creation Time : Fri Jan 27 15:48:28 2017 Raid Level : raid1 Array Size : 10482176 (10.00 GiB 10.73 GB) Used Dev Size : 10482176 (10.00 GiB 10.73 GB) Raid Devices : 2 Total Devices : 3 Persistence : Superblock is persistent Update Time : Fri Jan 27 15:49:20 2017 State : active Active Devices : 2 Working Devices : 3 Failed Devices : 0 Spare Devices : 1 Name : localhost.localdomain:0 (local to host localhost.localdomain) UUID : 05a71baf:68ed7707:18ae7601:b29751e5 Events : 18 Number Major Minor RaidDevice State 0 8 33 0 active sync /dev/sdc1 1 8 34 1 active sync /dev/sdc2 2 8 35 - spare /dev/sdc3
6、创建一个大小为4G的RAID5设备,chunk大小为256k,格式化ext4文件系统,要求可开机自动挂载至/backup目录,而且不更新访问时间戳,且支持acl功能;
]# fdisk /dev/sdc ##对空闲盘进行分区 ]# partx /dev/sdc ##查看分区使用情况 # 1: 63- 8401994 ( 8401932 sectors, 4301 MB) # 2: 8401995- 16803989 ( 8401995 sectors, 4301 MB) # 3: 16803990- 25205984 ( 8401995 sectors, 4301 MB) # 4: 0- -1 ( 0 sectors, 0 MB) ]# mdadm -C /dev/md0 -n 3 -l 5 -c 256 -a yes /dev/sdc1 /dev/sdc2 /dev/sdc3 ##创建raid5阵列 ]# mdadm -D /dev/md0 ##查看raid创建情况 /dev/md0: Version : 1.2 Creation Time : Fri Jan 27 16:02:56 2017 Raid Level : raid5 Array Size : 8393728 (8.00 GiB 8.60 GB) Used Dev Size : 4196864 (4.00 GiB 4.30 GB) Raid Devices : 3 Total Devices : 3 Persistence : Superblock is persistent Update Time : Fri Jan 27 16:05:09 2017 State : clean, degraded, recovering Active Devices : 2 Working Devices : 3 Failed Devices : 0 Spare Devices : 1 Layout : left-symmetric Chunk Size : 256K Rebuild Status : 99% complete ##显示raid创建进度 Name : localhost.localdomain:0 (local to host localhost.localdomain) UUID : cb8d986d:1968c003:bd0579de:60ae32fc Events : 20 Number Major Minor RaidDevice State 0 8 33 0 active sync /dev/sdc1 1 8 34 1 active sync /dev/sdc2 3 8 35 2 spare rebuilding /dev/sdc3 ]# mke2fs -t ext4 /dev/md0 ##格式化分区 ]# tune2fs -o acl /dev/md0 ##开启acl ]# vim /etc/fstab ##编辑fstab文件 /dev/md0 /backup ext4 defaults,noatime 0 0 ##加入改行
7、写一个脚本
(1) 接受一个以上文件路径作为参数;
(2) 显示每个文件拥有的行数;
(3) 总结说明本次共为几个文件统计了其行数;
#!/bin/bash declare -i num num=0 if [ $# -lt 1 ];then echo -en "请至少输入一个文件!\n" exit 1 else for i in $(seq 1 $#);do if [ ! -f $1 ];then echo -en "$1 不是文件!\n" shift continue fi wc -l $1 let num++ shift done fi
8、写一个脚本
(1) 传递两个以上字符串当作用户名;
(2) 创建这些用户;且密码同用户名;
(3) 总结说明共创建了几个用户;
#!/bin/bash declare -i sum sum=0 if [ $# -lt 2 ];then echo -en "请至少输入两个以上字符串!\n" exit 1 fi for i in $(seq 1 $#);do if [[ $1 =~ [[:alnum:]] ]];then id $1 &> /dev/null && echo -en "该用户${1}已经存在!\n" && shift && continue useradd $1 &> /dev/null && echo $1 |passwd --stdin $1 &> /dev/null && let sum++ shift else echo -en "该用户名不符合规定!\n" shift fi done echo -en "总共创建了${sum}个用户。\n"
9、写一个脚本,新建20个用户,visitor1-visitor20;计算他们的ID之和;
#!/bin/bash sum=0 userid=0 for ((i=1;i<=20;i++));do useradd visitor${i} &> /dev/null userid=$(id -u visitor$i) let sum+=$userid done echo -en "用户id之和为:${sum}。\n"
原创文章,作者:N25_Nva,如若转载,请注明出处:http://www.178linux.com/69503
评论列表(1条)
再接再励。