1、創建一個10G分區,并格式為ext4文件系統;
(1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;
[root@localhost ~]# fdisk /dev/sdb #創建10G分區 Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table Building a new DOS disklabel with disk identifier 0xf0ff800a. Command (m for help): n #添加分區 Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p #指定新建分區類型為主分區 Partition number (1-4, default 1): 1 #指定分區編號 First sector (2048-251658239, default 2048): #回車從默認扇區開始分區 Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-251658239, default 251658239): +10G #劃分10G空間 Partition 1 of type Linux and of size 10 GiB is set Command (m for help): p #打印分區表信息 Disk /dev/sdb: 128.8 GB, 128849018880 bytes, 251658240 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0xf0ff800a Device Boot Start End Blocks Id System /dev/sdb1 2048 20973567 10485760 83 Linux Command (m for help): w #保存分區信息 The partition table has been altered! [root@localhost ~]# partx -a /dev/sdb #分區立即生效 partx: /dev/sdb: error adding partition 1 [root@localhost ~]# mke2fs -t ext4 -L MYDATA -b 2048 -m 20 /dev/sdb1 #格式化分區 mke2fs 1.42.9 (28-Dec-2013) Filesystem label=MYDATA OS type: Linux Block size=2048 (log=1) Fragment size=2048 (log=1) Stride=0 blocks, Stripe width=0 blocks 655360 inodes, 5242880 blocks 1048576 blocks (20.00%) reserved for the super user First data block=0 Maximum filesystem blocks=273678336 320 block groups 16384 blocks per group, 16384 fragments per group 2048 inodes per group Superblock backups stored on blocks: 16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104, 2048000, 3981312 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done [root@localhost ~]# tune2fs -o acl /dev/sdb1 #添加acl屬性 tune2fs 1.42.9 (28-Dec-2013) [root@localhost ~]# blkid /dev/sdb1 #顯示分區的一般信息 /dev/sdb1: LABEL="MYDATA" UUID="b16f489e-a6f6-4e68-8887-3e242952ae0b" TYPE="ext4"(2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳;
[root@localhost ~]# mkdir /data/mydata -p #創建掛載點目錄 [root@localhost ~]# mount -o noatime,noexec /dev/sdb1 /data/mydata/ #掛載分區至掛載點 [root@localhost ~]# mount|grep /data/mydata #查看詳細掛載信息 /dev/sdb1 on /data/mydata type ext4 (rw,noexec,noatime,seclabel,data=ordered)2、創建一個大小為1G的swap分區,并創建好文件系統,并啟用之;
[root@localhost ~]# fdisk /dev/sdb #創建一個1G分區 Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): p Partition number (2-4, default 2): 2 First sector (20973568-251658239, default 20973568): Using default value 20973568 Last sector, +sectors or +size{K,M,G} (20973568-251658239, default 251658239): +1G Partition 2 of type Linux and of size 1 GiB is set Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. [root@localhost ~]# partx -a /dev/sdb partx: /dev/sdb: error adding partitions 1-2 [root@localhost ~]# mkswap /dev/sdb2 #格式化分區為swap類型 mkswap: /dev/sdb2: warning: wiping old swap signature. Setting up swapspace version 1, size = 1048572 KiB no label, UUID=e3cf8440-4029-4674-97cb-c5c5db641979 [root@localhost ~]# free -m #查看當前內存使用信息,swap為2047 total used free shared buff/cache available Mem: 1824 118 1524 8 181 1542 Swap: 2047 0 2047 [root@localhost ~]# swapon /dev/sdb2 #掛載swap分區 [root@localhost ~]# free -m #掛載后swap變為3071 total used free shared buff/cache available Mem: 1824 119 1524 8 181 1541 Swap: 3071 0 30713、寫一個腳本
(1)、獲取并列出當前系統上的所有磁盤設備;
(2)、顯示每個磁盤設備上每個分區相關的空間使用信息;
#!/bin/bash echo "Hard disk:" ls /dev/[sh]d[a-z] echo "Partition info:" fdisk -l $(fdisk -l|grep "^/dev/[sh]d[a-z]"|cut -d" " -f14、總結RAID的各個級別及其組合方式和性能的不同;
RAID0:將多個磁盤合并成一個大的磁盤,不具有冗余,并行I/O,速度最快。
優點:讀寫速度快。
缺點:沒有冗余功能,如果一個磁盤損壞,則所有的數據都會丟失。
![]()
RAID1:兩組以上的N個磁盤相互作鏡像,同一數據在各組磁盤上均保存一份。
優點:安全性好,任意一塊磁盤損壞不會導致數據丟失。讀取速度理論上等于硬盤數量的倍數,寫入速度僅有微小的降低。
缺點:會造成磁盤空間浪費,實際使用空間只有所有磁盤總和的一半。
RAID5:RAID 5至少需要三顆硬盤,RAID 5不是對存儲的數據進行備份,而是把數據和相對應的奇偶校驗信息存儲到組成RAID5的各個磁盤上,并且奇偶校驗信息和相對應的數據分別存儲于不同的磁盤上。當一個磁盤數據發生損壞后,可以利用剩下的數據和相應的奇偶校驗信息去恢復被損壞的數據。
優點:讀取速度快,接近RAID0;數據安全性較好,在只壞一個磁盤的情況下不會造成數據丟失。
缺點:至少需要3塊磁盤,并且會損失一個磁盤容量的使用空間;當一塊磁盤故障時,寫入速度會大幅降低。
RAID10/01:RAID 10是先鏡射再分區數據,再將所有硬盤分為兩組,視為是RAID 0的最低組合,然后將這兩組各自視為RAID 1運作。RAID 01則是跟RAID 10的程序相反,是先分區再將數據鏡射到兩組硬盤。它將所有的硬盤分為兩組,變成RAID 1的最低組合,而將兩組硬盤各自視為RAID 0運作。
優點:既保證了數據的安全性,也提高了讀寫速度。
缺點:會造成一半磁盤空間的損失。
補充說明:實際生產中RAID10使用更廣泛,因為:
RAID0+1是先做兩個RAID0,然后再做RAID1,因此RAID0+1允許壞多個盤,但只能在壞在同一個RAID0中,不允許兩個RAID0都有壞盤。RAID1+0是先做RAID1,然后再做RAID0,因此RAID1+0允許壞多個盤,只要不是一對磁盤壞就可以了。因此說RAID1+0比RAID0+1安全得多,因為在同一對磁盤中,兩塊磁盤都壞掉的概率很低。
5、創建一個大小為10G的RAID1,要求有一個空閑盤,而且CHUNK大小為128k;
1)使用fdisk工具創建3個10G,Id編號為fd的分區
Device Boot Start End Blocks Id System /dev/sdb1 1 1306 10490413+ fd Linux raid autodetect /dev/sdb2 1307 2612 10490445 fd Linux raid autodetect /dev/sdb3 2613 3918 10490445 fd Linux raid autodetect2)使用mdadm命令創建raid磁盤
-C: 創建模式
-n #: 使用#個塊設備來創建此RAID;
-l #:指明要創建的RAID的級別;
-a {yes|no}:自動創建目標RAID設備的設備文件;
-c CHUNK_SIZE: 指明塊大??;
-x #: 指明空閑盤的個數;[root@centos6 ~]# mdadm -C /dev/md0 -n 2 -a yes -l 1 -x 1 -c 128 /dev/sdb{1,2,3} mdadm: /dev/sdb1 appears to be part of a raid array: level=raid1 devices=2 ctime=Sun Feb 12 23:04: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: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started. [root@centos6 ~]# cat /proc/mdstat #發現raid磁盤組正在recovery Personalities : [raid1] [raid6] [raid5] [raid4] md0 : active raid1 sdb3[2](S) sdb2[1] sdb1[0] 10482176 blocks super 1.2 [2/2] [UU] [==>..................] resync = 14.6% (1537792/10482176) finish=0.6min speed=219684K/sec unused devices: <none> [root@centos6 ~]# cat /proc/mdstat Personalities : [raid1] [raid6] [raid5] [raid4] md0 : active raid1 sdb3[2](S) sdb2[1] sdb1[0] 10482176 blocks super 1.2 [2/2] [UU] [===>.................] resync = 18.6% (1959296/10482176) finish=0.6min speed=217699K/sec6、創建一個大小為4G的RAID5設備,chunk大小為256k,格式化ext4文件系統,要求可開機自動掛載至/backup目錄,而且不更新訪問時間戳,且支持acl功能;
1)使用fdisk工具創建3個2G,Id編號為fd的分區
Device Boot Start End Blocks Id System /dev/sdb1 1 262 2104483+ fd Linux raid autodetect /dev/sdb2 263 524 2104515 fd Linux raid autodetect /dev/sdb3 525 786 2104515 fd Linux raid autodetect2)使用mdadm命令創建raid磁盤
[root@centos6 ~]# mdadm -C /dev/md0 -n 3 -a yes -l 5 -c 256 /dev/sdb{1,2,3}3)格式化raid磁盤
[root@centos6 ~]# mke2fs -t ext4 /dev/md04)查看磁盤的UUID信息
[root@centos6 ~]# blkid /dev/md0 /dev/md0: UUID="c72dbdd2-109c-441b-a03e-99adca12676a" TYPE="ext4"5)創建/backup目錄,并配置/etc/fstab文件,添加下面行:
UUID=c72dbdd2-109c-441b-a03e-99adca12676a /backup ext4 defaults,acl,nodiratime 0 07、寫一個腳本
(1) 接受一個以上文件路徑作為參數;
(2) 顯示每個文件擁有的行數;
(3) 總結說明本次共為幾個文件統計了其行數;
#!/bin/bash if [ $# -le 1 ];then echo "At least 2 arguments!" exit 1 fi cnt=0 for file in $@ do if [ -f $file ];then lines=$(cat $file|wc -l) echo "$file: "$lines let cnt++ else echo "$file not exists." continue fi done echo "$cnt files have been counted."8、寫一個腳本
(1) 傳遞兩個以上字符串當作用戶名;
(2) 創建這些用戶;且密碼同用戶名;
(3) 總結說明共創建了幾個用戶;
#!/bin/bash if [ $# -le 1 ];then echo "At least 2 arguments!" exit 1 fi sum=0 for user in $@ do if id $user &>/dev/null;then echo "user $user already exists." continue else useradd $user echo "$user"|passwd --stdin $user &>/dev/null echo "$user has been created." let sum++ fi done echo "$sum users created."9、寫一個腳本,新建20個用戶,visitor1-visitor20;計算他們的ID之和;
#!/bin/bash sum=0 for i in {1..20} do if id visitor${i} &>/dev/null;then echo "visitor${i} already exists." continue else useradd visitor${i} echo "user visitor${i} has been created." uid=$(id -u visitor${i}) let sum=sum+uid fi done echo "sum: "$sum10、寫一腳本,分別統計/etc/rc.d/rc.sysinit、/etc/rc.d/init.d/functions和/etc/fstab文件中以#號開頭的行數之和,以及總的空白行數;
#!/bin/bash files="/etc/rc.d/rc.sysinit /etc/rc.d/init.d/functions /etc/fstab" sum1=0 sum2=0 for fn in $files do line1=$(grep "^#" $fn|wc -l) line2=$(grep "^$" $fn|wc -l) let sum1=sum1+line1 let sum2=sum2+line2 done echo "Begin with #: "$sum1 echo "Blank rows: "$sum211、寫一個腳本,顯示當前系統上所有默認shell為bash的用戶的用戶名、UID以及此類所有用戶的UID之和;
awk -F: 'BEGIN{printf "%-15s%s\n------------------\n","USERNAME","UID"}{if($NF=="/bin/bash"){sum=sum+$3;printf "%-15s%s\n",$1,$3}}END{printf "------------------\nsum: %s\n",sum}' /etc/passwd12、寫一個腳本,顯示當前系統上所有,擁有附加組的用戶的用戶名;并說明共有多少個此類用戶;
#!/bin/bash users=$(cat /etc/passwd|awk -F: '{print $1}') sum=0 for name in $users do gpcnt=$(id -G $name|xargs -n 1|wc -l) if [ $gpcnt -gt 1 ];then echo "$name" let sum++ fi done echo "$sum users have additional group"13、創建一個由至少兩個物理卷組成的大小為20G的卷組;要求,PE大小為8M;而在卷組中創建一個大小為5G的邏輯卷mylv1,格式化為ext4文件系統,開機自動掛載至/users目錄,支持acl;
1)使用fdisk創建兩個10G,Id為8e的分區
Device Boot Start End Blocks Id System /dev/sdb1 1 1306 10490413+ 8e Linux LVM /dev/sdb2 1307 2612 10490445 8e Linux LVM2)創建pv
[root@centos6 ~]# pvcreate /dev/sdb{1,2} Physical volume "/dev/sdb1" successfully created Physical volume "/dev/sdb2" successfully created [root@centos6 ~]# pvs PV VG Fmt Attr PSize PFree /dev/sdb1 lvm2 ---- 10.00g 10.00g /dev/sdb2 lvm2 ---- 10.00g 10.00g3)創建vg
[root@centos6 ~]# vgcreate -s 8M myvg /dev/sdb1 /dev/sdb2 Volume group "myvg" successfully created [root@centos6 ~]# vgdisplay --- Volume group --- VG Name myvg System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 20.00 GiB PE Size 8.00 MiB Total PE 2560 Alloc PE / Size 0 / 0 Free PE / Size 2560 / 20.00 GiB VG UUID 7XzzmY-TcTV-Tskk-KkJF-DX8j-M3r0-yegZOn4)創建lv
[root@centos6 ~]# lvcreate -L 5G -n mylv1 myvg Logical volume "mylv1" created. [root@centos6 ~]# lvdisplay --- Logical volume --- LV Path /dev/myvg/mylv1 LV Name mylv1 VG Name myvg LV UUID qf4YZA-Fpb3-mSbA-bmE8-akpw-PF6c-jT6qxd LV Write Access read/write LV Creation host, time centos6, 2017-02-13 02:26:03 +0800 LV Status available # open 0 LV Size 5.00 GiB Current LE 640 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:05)文件系統格式化
[root@centos6 ~]# mkfs -t ext4 /dev/myvg/mylv16)文件系統掛載
[root@centos6 ~]# mkdir /users [root@centos6 ~]# blkid /dev/myvg/mylv1 /dev/myvg/mylv1: UUID="9792d25f-fd1d-46ae-aa88-c14ea5383bc2" TYPE="ext4" [root@centos6 ~]# vim /etc/fstab #添加下面內容 UUID=9792d25f-fd1d-46ae-aa88-c14ea5383bc2 /users ext4 defaults,acl 0 014、新建用戶magedu;其家目錄為/users/magedu,而后su切換至此用戶,復制多個文件至家目錄;
[root@centos6 ~]# useradd -d /users/magedu magedu [root@centos6 ~]# echo "magedu"|passwd --stdin magedu [root@centos6 ~]# su - magedu [magedu@centos6 ~]$ cp /etc/yum.repos.d/* /users/magedu15、擴展mylv1至9G,確保擴展完成后原有數據完全可用;
1)使用lvextend命令將當前PV中剩余PE分4G給mylv1(此時并未生效)
[root@centos6 ~]# lvextend -L +4G /dev/myvg/mylv12)使用resize2fs命令使新擴展的磁盤空間生效
[root@centos6 ~]# resize2fs /dev/myvg/mylv1 [root@centos6 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 116G 1.4G 109G 2% / tmpfs 364M 0 364M 0% /dev/shm /dev/sda1 477M 32M 420M 7% /boot /dev/mapper/myvg-mylv1 8.8G 12M 8.3G 1% /users16、縮減mylv1至7G,確??s減完成后原有數據完全可用;
1)先卸載要縮減的LV
[root@centos6 ~]# umount /dev/myvg/mylv12)進行強制磁盤檢測
[root@centos6 ~]# e2fsck -f /dev/myvg/mylv13)resize2fs重定義LV大小為7G
[root@centos6 ~]# resize2fs /dev/myvg/mylv1 7000M4)lvreduce使縮減后的LV生效
[root@centos6 ~]# lvreduce -L 7000M /dev/myvg/mylv15)重新掛載LV并檢查分區上原來的文件是否損壞
[root@centos6 ~]# mount /dev/myvg/mylv1 /users/ [root@centos6 magedu]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 116G 1.4G 109G 2% / tmpfs 364M 0 364M 0% /dev/shm /dev/sda1 477M 32M 420M 7% /boot /dev/mapper/myvg-mylv1 6.7G 12M 6.3G 1% /users [root@centos6 magedu]# ls /users/magedu/ CentOS-Base.repo CentOS-fasttrack.repo CentOS-Vault.repo CentOS-Debuginfo.repo CentOS-Media.repo17、對mylv1創建快照,并通過備份數據;要求保留原有的屬主屬組等信息;
1)創建一個1G的快照文件
[root@centos6 magedu]# lvcreate -L 1G -s -n mysnap /dev/myvg/mylv1 Logical volume "mysnap" created. [root@centos6 magedu]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert mylv1 myvg owi-aos--- 6.84g mysnap myvg swi-a-s--- 1.00g mylv1 0.002)創建并掛載快照目錄
[root@centos6 magedu]# mkdir /mnt/snapshot [root@centos6 magedu]# mount /dev/mapper/myvg-mysnap /mnt/snapshot/ [root@centos6 magedu]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 116G 1.4G 109G 2% / tmpfs 364M 0 364M 0% /dev/shm /dev/sda1 477M 32M 420M 7% /boot /dev/mapper/myvg-mylv1 6.7G 12M 6.3G 1% /users /dev/mapper/myvg-mysnap 6.7G 12M 6.3G 1% /mnt/snapshot3)刪除mylv1中的數據,并使用鏡像文件進行恢復
[root@centos6 magedu]# rm -f /users/magedu/* [root@centos6 magedu]# cp -a /mnt/snapshot/magedu/* /users/magedu/ [root@centos6 magedu]# ll /users/magedu/ total 24 -rw-r--r-- 1 magedu magedu 1991 Feb 13 02:47 CentOS-Base.repo -rw-r--r-- 1 magedu magedu 647 Feb 13 02:47 CentOS-Debuginfo.repo -rw-r--r-- 1 magedu magedu 289 Feb 13 02:47 CentOS-fasttrack.repo -rw-r--r-- 1 magedu magedu 630 Feb 13 02:47 CentOS-Media.repo -rw-r--r-- 1 magedu magedu 6259 Feb 13 02:47 CentOS-Vault.repo
原創文章,作者:N26-西安-方老喵,如若轉載,請注明出處:http://www.www58058.com/66990
非常非常棒博客內容,贊一個。