1、創建一個10G分區,并格式為ext4文件系統;
(1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;
(2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳;
[root@6 ~]# mkfs -t ext4 -b 2048 -m 2 -L MYDATA /dev/sda3 [root@6 ~]# tune2fs -o acl /dev/sda3 [root@6 ~]# mount -o noexec,nodiratime /dev/sda3 /data/mydata
2、創建一個大小為1G的swap分區,并創建好文件系統,并啟用之;
[root@6 ~]# fdisk /dev/sda WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): n First cylinder (3265-3918, default 3265): Using default value 3265 Last cylinder, +cylinders or +size{K,M,G} (3265-3918, default 3918): Using default value 3918 Command (m for help): t Partition number (1-5): 5 Hex code (type L to list codes): 82 Changed system type of partition 5 to 82 (Linux swap / Solaris) Command (m for help): p Disk /dev/sda: 536.9 GB, 536870912000 bytes 255 heads, 63 sectors/track, 65270 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000338a0 Device Boot Start End Blocks Id System /dev/sda1 * 1 64 512000 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 64 2611 20458496 8e Linux LVM /dev/sda3 2611 3264 5246560 8e Linux LVM /dev/sda4 3265 3918 5253255 5 Extended /dev/sda5 3265 3918 5253223+ 82 Linux swap / Solaris Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: 設備或資源忙. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks. [root@6 ~]# mkswap /dev/sda5 Setting up swapspace version 1, size = 5253216 KiB no label, UUID=564a2883-6fb5-4419-a3ea-0b5cc1b20020 [root@6 ~]# swapon /dev/sda5
3、寫一個腳本
(1)、獲取并列出當前系統上的所有磁盤設備;
(2)、顯示每個磁盤設備上每個分區相關的空間使用信息;
#!/bin/bash for i in $( fdisk -l | grep -o '/dev/sd[[:alnum:]]\+' );do echo "$( df -h $i)" done
4、總結RAID的各個級別及其組合方式和性能的不同;
RAID(Redundant Array of Independent Disk 獨立冗余磁盤陣列)技術是加州大學伯克利分校1987年提出,最初是為了組合小的廉價磁盤來代替大的昂貴磁盤,同時希望磁盤失效時不會使對數據的訪問受損 失而開發出一定水平的數據保護技術。RAID就是一種由多塊廉價磁盤構成的冗余陣列,在操作系統下是作為一個獨立的大型存儲設備出現。RAID可以充分發 揮出多塊硬盤的優勢,可以提升硬盤速度,增大容量,提供容錯功能夠確保數據安全性,易于管理的優點,在任何一塊硬盤出現問題的情況下都可以繼續工作,不會受到硬盤損壞的影響。
簡單的說,RAID是一種把多塊獨立的硬盤(物理硬盤)按不同的方式組合起來形成一個硬盤組(邏輯硬盤),從而提供比單個硬盤更高的存儲性能和提供數據備份技術。組成磁盤陣列的不同方式稱為RAID級別(RAID Levels)。在用戶看起來,組成的磁盤組就像是一個硬盤,用戶可以對它進行分區,格式化等等??傊?,對磁盤陣列的操作與單個硬盤一模一樣。不同的是,磁盤陣列的存儲速度要比單個硬盤高很多,而且可以提供自動數據備份。數據備份的功能是在用戶數據一旦發生損壞后,利用備份信息可以使損壞數據得以恢復,從而保障了用戶數據的安全性。
磁盤陣列其樣式有三種,一是外接式磁盤陣列柜、二是內接式磁盤陣列卡,三是利用軟件來仿真。外接式磁盤陣列柜最常被使用大型服務器上,具可熱交換(Hot Swap)的特性,不過這類產品的價格都很貴。內接式磁盤陣列卡,因為價格便宜,但需要較高的安裝技術,適合技術人員使用操作。硬件陣列能夠提供在線擴容、動態修改陣列級別、自動數據恢復、驅動器漫游、超高速緩沖等功能。它能提供性能、數據保護、可靠性、可用性和可管理性的解決方案。陣列卡專用的處理單元來進行操作。利用軟件仿真的方式,是指通過網絡操作系統自身提供的磁盤管理功能將連接的普通SCSI卡上的多塊硬盤配置成邏輯盤,組成陣列。軟件陣列可以提供數據冗余功能,但是磁盤子系統的性能會有所降低,有的降低幅度還比較大,達30%左右。因此會拖累機器的速度,不適合大數據流量的服務器。
RAID0:無差錯控制條帶組
要實現RAID0必須要有兩個以上硬盤驅動器,RAID0實現了帶區組,數據并不是保存在一個硬盤上,而是分成數據塊保存在不同驅動器上。因為將數據分布在不同驅動器上,所以數據吞吐率大大提高,驅動器的負載也比較平衡。如果剛好所需要的數據在不同的驅動器上效率最好。它不需要計算校驗碼,實現容易。它的缺點是它沒有數據差錯控制,如果一個驅動器中的數據發生錯誤,即使其它盤上的數據正確也無濟于事了。不應該將它用于對數據穩定性要求高的場合。如果用戶進行圖象(包括動畫)編輯和其它要求傳輸比較大的場合使用RAID0比較合適。同時,RAID可以提高數據傳輸速率,比如所需讀取的文件分布在兩個硬盤上,這兩個硬盤可以同時讀取。那么原來讀取同樣文件的時間被縮短為1/2。在所有的級別中,RAID 0的速度是最快的。但是RAID0沒有冗余功能的,如果一個磁盤(物理)損壞,則所有的數據都無法使用。如果兩塊硬盤:160G+120G=240G
RAID1:鏡像結構
對于使用這種RAID1結構的設備來說,RAID控制器必須能夠同時對兩個盤進行讀操作和對兩個鏡象盤進行寫操作。通過下面的結構圖您也可以看到必須有兩個驅動器。因為是鏡象結構在一組盤出現問題時,可以使用鏡象,提高系統的容錯能力。它比較容易設計和實現。每讀一次盤只能讀出一塊數據,也就是說數據塊傳送速率與單獨的盤的讀取速率相同。因為RAID1的校驗十分完備,因此對系統的處理能力有很大的影響,通常的RAID功能由軟件實現,而這樣的實現方法在服務器負載比較重的時候會大大影響服務器效率。當您的系統需要極高的可靠性時,如進行數據統計,那么使用RAID1比較合適。而且RAID1技術支持“熱替換”,即不斷電的情況下對故障磁盤進行更換,更換完畢只要從鏡像盤上恢復數據即可。當主硬盤損壞時,鏡像硬盤就可以代替主硬盤工作。鏡像硬盤相當于一個備份盤,可想而知,這種硬盤模式的安全性是非常高的,RAID 1的數據安全性在所有的RAID級別上來說是最好的。但是其磁盤的利用率卻只有50%,是所有RAID級別中最低的。如果兩塊硬盤:160G+120G=120G
RAID5:分布式奇偶校驗的獨立磁盤結構
從它的示意圖上可以看到,它的奇偶校驗碼存在于所有磁盤上,其中的p0代表第0帶區的奇偶校驗值,其它的意思也相同。RAID5的讀出效率很高,寫入效率一般,塊式的集體訪問效率不錯。因為奇偶校驗碼在不同的磁盤上,所以提高了可靠性,允許單個磁盤出錯。RAID 5也是以數據的校驗位來保證數據的安全,但它不是以單獨硬盤來存放數據的校驗位,而是將數據段的校驗位交互存放于各個硬盤上。這樣,任何一個硬盤損壞,都可以根據其它硬盤上的校驗位來重建損壞的數據。硬盤的利用率為n-1。但是它對數據傳輸的并行性解決不好,而且控制器的設計也相當困難。RAID 3 與RAID 5相比,重要的區別在于RAID 3每進行一次數據傳輸,需涉及到所有的陣列盤。而對于RAID 5來說,大部分數據傳輸只對一塊磁盤操作,可進行并行操作。在RAID 5中有“寫損失”,即每一次寫操作,將產生四個實際的讀/寫操作,其中兩次讀舊的數據及奇偶信息,兩次寫新的數據及奇偶信息。RAID-5的話,優點是提供了冗余性(支持一塊盤掉線后仍然正常運行),磁盤空間利用率較高(N-1/N),讀寫速度較快(N-1倍)。RAID5最大的好處是在一塊盤掉線的情況下,RAID照常工作,相對于RAID0必須每一塊盤都正常才可以正常工作的狀況容錯性能好多了。因此RAID5是RAID級別中最常見的一個類型。RAID5校驗位即P位是通過其它條帶數據做異或(xor)求得的。計算公式為P=D0xorD1xorD2…xorDn,其中p代表校驗塊,Dn代表相應的數據塊,xor是數學運算符號異或。
RAID10/01:高可靠性與高效磁盤結構
這種結構無非是一個帶區結構加一個鏡象結構,因為兩種結構各有優缺點,因此可以相互補充,達到既高效又高速還可以互為鏡像的目的。大家可以結合兩種結構的優點和缺點來理解這種新結構。這種新結構的價格高,可擴充性不好。主要用于容量不大,但要求速度和差錯控制的數據庫中。
其中可分為兩種組合:RAID10和RAID01
RAID 10是先鏡射再分區數據。是將所有硬盤分為兩組,視為是RAID 0的最低組合,然后將這兩組各自視為RAID 1運作。RAID 10有著不錯的讀取速度,而且擁有比RAID 0更高的數據保護性。
RAID 01則是跟RAID 10的程序相反,是先分區再將數據鏡射到兩組硬盤。它將所有的硬盤分為兩組,變成RAID 1的最低組合,而將兩組硬盤各自視為RAID 0運作。RAID 01比起RAID 10有著更快的讀寫速度,不過也多了一些會讓整個硬盤組停止運轉的機率;因為只要同一組的硬盤全部損毀,RAID 01就會停止運作,而RAID 10則可以在犧牲RAID 0的優勢下正常運作。RAID 10巧妙的利用了RAID 0的速度以及RAID 1的保護兩種特性,不過它的缺點是需要的硬盤數較多,因為至少必須擁有四個以上的偶數硬盤才能使用。
詳細介紹http://www.kuqin.com/hardware/20110906/264420.html
5、創建一個大小為10G的RAID1,要求有一個空閑盤,而且CHUNK大小為128k;
[root@6 mnt]# mdadm -C /dev/md0 - 1 -x 1 -n 3 -a yes -c 128 /dev/sda{3,4,5}
6、創建一個大小為4G的RAID5設備,chunk大小為256k,格式化ext4文件系統,要求可開機自動掛載至/backup目錄,而且不更新訪問時間戳,且支持acl功能;
[root@6 mnt]# mdadm -C /dev/md0 -l 5 -n 3 -a yes -c 256 /dev/sda{3,4,5}
7、寫一個腳本
(1) 接受一個以上文件路徑作為參數;
(2) 顯示每個文件擁有的行數;
(3) 總結說明本次共為幾個文件統計了其行數;
#!/bin/bash if [ $# -eq 0 ];then echo "please input filename" exit 1 fi for file in $*;do echo "$file \t $( wc -l $file | awk '{ print $1}')" let file++ done echo "$file"
8、寫一個腳本
(1) 傳遞兩個以上字符串當作用戶名;
(2) 創建這些用戶;且密碼同用戶名;
(3) 總結說明共創建了幾個用戶;
#!/bin/bash declare i=0 if [ $# -eq 0];then echo "plesae input string" exit 1 fi for username in $#;do id $username &>/dev/null if [ $? -eq 0 ];then echo "$username is exists" else useradd $username echo "$username" | passwd --stdin "$username" echo "userandd $username succesful" let i++ fi done echo "add $i"
9、寫一個腳本,新建20個用戶,visitor1-visitor20;計算他們的ID之和;
#!/bin/bash declare j=0 for((i=1;i<21;i++)) do useradd visitor$i let j+=$( id -u visitor$i) done echo "$j"
10、寫一腳本,分別統計/etc/rc.d/rc.sysinit、/etc/rc.d/init.d/functions和/etc/fstab文件中以#號開頭的行數之和,以及總的空白行數;
#!/bin/bash declare i=0 declare j=0 for line in {/etc/rc.d/rc.sysinit,/etc/rc.d/init.d/functions,/etc/fstab};do let i+=$(grep '^#' $line | wc -l) let j+=$(grep '^$' $line | wc -l) done echo "# line is $i" echo "space line is $j"
11、寫一個腳本,顯示當前系統上所有默認shell為bash的用戶的用戶名、UID以及此類所有用戶的UID之和;
#!/bin/bash declare userid=0 for i in $(grep '/bash\+' /etc/passwd | cut -d: -f3);do let userid+=$i done echo "$(grep '/bash\+' /etc/passwd | cut -d: -f1,3)" echo "$userid"
12、寫一個腳本,顯示當前系統上所有,擁有附加組的用戶的用戶名;并說明共有多少個此類用戶;
#!/bin/bash declare i=0 for user in $( cut -d: -f1 /etc/passwd ); do id $user | grep ',' if [ $? -eq 0 ];then echo "$user" let i++ fi done echo "$i"
13、創建一個由至少兩個物理卷組成的大小為20G的卷組;要求,PE大小為8M;而在卷組中創建一個大小為5G的邏輯卷mylv1,格式化為ext4文件系統,開機自動掛載至/users目錄,支持acl;
[root@6 mnt]# pvcreate /dev/{sda3,sda4} [root@6 mnt]# vgcreate -s 8M vgtest /dev/{sda3,sda4} [root@6 mnt]# lvcreate -L 5G -n mylvl /dev/vgtest [root@6 mnt]# mkfs -t ext4 /dev/vgtest/mylvl [root@6 mnt]# echo "/dev/myvg/mylv1 /users ext4 defaults,acl,nodiratime 0 0" >> /etc/fstab
14、新建用戶magedu;其家目錄為/users/magedu,而后su切換至此用戶,復制多個文件至家目錄;
[root@6 mnt]# useradd -d /users/magedu magedu [root@6 mnt]# su - magedu [root@6 mnt]# cp /etc/passwd .
15、擴展mylv1至9G,確保擴展完成后原有數據完全可用;
[root@6 mnt]# lvextend -L +4G /dev/vgtest/mylvl [root@6 mnt]# resize2fs /dev/vgtest/mylvl
16、縮減mylv1至7G,確??s減完成后原有數據完全可用;
[root@6 mnt]# umount /dev/vgtest/mylvl [root@6 mnt]# resize2fs /dev/vgtest/mylvl 7G [root@6 mnt]# lvreduce -L 7G -n /dev/vgtest/mylvl
17、對mylv1創建快照,并通過備份數據;要求保留原有的屬主屬組等信息;
[root@6 mnt]# lvcreate -L 2G -p r -s -n mylvl_snapshot /dev/vgtest/mylvl
以上
原創文章,作者:N21_619463772,如若轉載,請注明出處:http://www.www58058.com/35238
其實摘錄這種方式我并建議的,重點是你知道為什么??偨Y自己能夠記得住的方式