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.www58058.com/69503
再接再勵。