一、創建一個10G分區,并格式為ext4文件系統;
1、 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;
A、創建一個10G的磁盤空間
[root@VM_221_40_centos ~]#
fdisk /dev/vdb
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): p #查看當前分區情況
Disk /dev/vdb: 32.2 GB, 32212254720 bytes, 62914560 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: 0xaec1a5ab
Device Boot Start End Blocks Id System
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 #分區編號為1
First sector (2048-62914559, default 2048): #輸入磁盤空間開始的塊的序號。不輸入任何數字為默認值2048。
Using default value 2048 #提示信息:使用默認值2048
Last sector, +sectors or +size{K,M,G} (2048-62914559, default
62914559): +10G #輸入磁盤空間大?。?/span>10G
Partition 1 of type Linux and of size 10 GiB is set #反饋信息:類型為linux、空間為10G的分區1已經設定
Command (m for help): p #查看當前分區信息
Disk /dev/vdb: 32.2 GB, 32212254720 bytes, 62914560 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: 0xaec1a5ab
Device Boot Start End Blocks Id System
/dev/vdb1 2048 20973567 10485760 83 Linux
#創建的分區的信息。設備路徑:/dev/vdb1、開始柱面:2048、結束柱面:20973567、總共有10485760個塊、分區ID:83、分區類型:linux
Command (m for help): w #輸入w 保存操作并退出
The partition table has been altered! #提示分區表已經改變
Calling ioctl() to re-read partition table.
Syncing disks.
[root@VM_221_40_centos ~]#
B、創建文件系統
[root@VM_221_40_centos ~]# mke2fs -t ext4 -b 2048 -L MYDATA -m 2 -O
has_journal /dev/vdb1
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=MYDATA #標簽
OS type: Linux #文件系統類型
Block size=2048 (log=1) #塊大小2048
Fragment size=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 5242880 blocks #文件系統的inode和block數量
104857 blocks (2.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 #每組16384個塊
2048 inodes per group #每個塊組中有2048個inode
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@VM_221_40_centos ~]#
2、掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳;
[root@VM_221_40_centos
~]# mkdir /data/mydata
[root@VM_221_40_centos
~]# mount -o noexec,noatime /dev/vdb1 /data/mydata
也可在/etc/fstab文件中新增一行
/dev/vdb1 /data/mydata ext4 defaults,noexec,noatime 0 0
寫入保存退出后,運行mount
–a,再運行mount命令查看己掛載的項
二、創建一個大小為1G的swap分區,并創建好文件系統,并啟用之;
[root@VM_221_40_centos ~]# fdisk /dev/vdb
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): p
Disk /dev/vdb: 32.2 GB, 32212254720 bytes, 62914560 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: 0xaec1a5ab
Device Boot Start End Blocks Id System
/dev/vdb1 2048 20973567 10485760 83 Linux
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-62914559, default 20973568):
Using default value 20973568
Last sector, +sectors or +size{K,M,G} (20973568-62914559, default
62914559): +1G #設置分區大小為1G
Partition 2 of type Linux and of size 1 GiB is set
Command (m for help): t #修改分區類型
Partition number (1,2, default 2): 2
Hex code (type L to list all codes): 82 #輸入分區類型
Changed type of partition ‘Old Minix’ to ‘Linux swap / Solaris’
Command (m for help): p #查看當前分區狀態
Disk /dev/vdb: 32.2 GB, 32212254720 bytes, 62914560 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: 0xaec1a5ab
Device Boot Start End Blocks Id System
/dev/vdb1 2048 20973567 10485760 83 Linux
/dev/vdb2 20973568 23070719 1048576 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: Device
or resource busy.
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@VM_221_40_centos ~]#
[root@VM_221_40_centos ~]# partx -a /dev/vdb #讀取分區
partx: /dev/vdb: error adding partitions 1-2
[root@VM_221_40_centos ~]# fdisk -l /dev/vdb #查看/dev/vdb分區信息
Disk /dev/vdb: 32.2 GB, 32212254720 bytes, 62914560 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: 0xaec1a5ab
Device Boot Start End Blocks Id System
/dev/vdb1 2048 20973567 10485760 83 Linux
/dev/vdb2 20973568 23070719 1048576 82 Linux swap / Solaris #swap分區己創建完成
[root@VM_221_40_centos ~]#
[root@VM_221_40_centos ~]# mkswap /dev/vdb2 #創建交換分區文件系統
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=f731fb7d-f408-4088-9fca-ca2b4c39abc4
[root@VM_221_40_centos ~]#
[root@VM_221_40_centos ~]# free #用free命令查看當前可用內存
total used free shared buff/cache available
Mem: 1016904 106860 135484 12544 774560 719572
Swap: 0 0 0
[root@VM_221_40_centos ~]# swapon
/dev/vdb2 #掛載swap分區
[root@VM_221_40_centos ~]# free #再次用free命令查看,可以看到已經掛載成功
total used free shared buff/cache available
Mem: 1016904 107348 135004 12544 774552 719096
Swap: 1048572 0 1048572
[root@VM_221_40_centos ~]#
三、寫一個腳本
(1)、獲取并列出當前系統上的所有磁盤設備;
(2)、顯示每個磁盤設備上每個分區相關的空間使用信息;
腳本如下:
#!/bin/bash
#
#
a=`ls /dev/ | grep “[hsv]d[a-z]”`
echo -e “All of you disk devices is \n$a”
filesystem=`df -lh | grep “Filesystem”`
b=`df -lh | grep “^\/dev”`
echo -e “The Disk partition information\n$filesystem\n$b”
輸出結果:
[root@VM_221_40_centos tmp]# ./diskdisplay.sh
All of you disk devices is
vda
vda1
vdb
vdb1
vdb2
The Disk partition information
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 20G 1.8G 17G 10% /
/dev/vdb1 9.8G 13M 9.6G 1% /data/mydata
四、總結RAID的各個級別及其組合方式和性能的不同;
RAID的實現方式:
1. 硬件方式:
a) 外接式磁盤陣列:通過PCI或PCI-E擴展卡提供適配能力
b) 內接式磁盤陣列:通過主板上集成的RAID控制器
2. 軟件方式:
a) 通過軟件創建(生產環境中不推薦使用)
RAID的級別
1) RAID 0
這種模式如通過相同型號、相同容量的磁盤來實現效果極佳。
工作方式:
先把硬盤分切出等量的區塊,當文件要寫入磁盤中時,把數據依據磁盤區塊大小切割好,再依序交錯存入磁盤。如一個數據文件有100MB,每個磁盤會各存入50MB。
工作方式如下圖:
RAID 0的特點:
l 讀寫能力提升
l 可用空間為最小硬盤容量乘以硬盤塊數。
l 無容錯能力,若其中一塊硬盤有故障,會導致數據缺失。
l 最少硬盤塊數:2
2) RAID 1
工作方式:
先把硬盤分切出等量的區塊,當文件要寫入磁盤中時,把數據依據磁盤區塊大小切割好,再存入各磁盤各一份。
如保存一份文件時,兩個磁盤都會保存一份完整的文件。
RAID 1 鏡像卷(mirror)特點:
l 讀性能提升,寫性能略有下降
l 可用空間:最小磁盤空間*1
l 有容錯能力
l 最少磁盤個數:2
3) RAID 4
RAID 4工作方式:
兩塊硬盤做數據盤,另外一塊硬盤專門來做校驗盤。
數據保存時,按異或運算保存數據。
即當硬盤1保存的數據為1011,硬盤2保存的數據為1100,硬盤3中的數據以1011和1100作異或運算即為0111。
RAID 4特點:
l 至少需要三塊硬盤
l 2塊硬盤做數據盤,1塊硬盤做校驗盤(文件讀寫時都需訪問該硬盤,工作壓力大)。
l 有容錯能力,允許壞一塊硬盤。當壞一塊硬盤的時候,為降級工作模式??勺x寫,但不推薦。
l 可用空間:(N-1)*最小硬盤空間
4) RAID 5
RAID5工作方式:
同RAID4,不過為三塊硬盤輪流做校驗盤。
特點:
l 至少需要三塊硬盤
l 三塊硬盤輪流做校驗盤。
l 有容錯能力,允許壞一塊硬盤。當壞一塊硬盤的時候,為降級工作模式。可讀寫,但不推薦。
l 可用空間:(N-1)*最小硬盤空間
工作方式見下圖:
5) RAID 6
實現方式:至少由四塊硬盤構成。兩塊硬盤數據,另外兩塊硬盤輪流做校驗盤。
特點:
l 最少需4塊硬盤
l 讀寫能力提升
l 有容錯能力,可壞2塊硬盤而不影響數據。
l 可用空間(N-2)*最小磁盤空間大小
工作方式見下圖:
6) RAID10
構成方式:
假設有四塊硬盤,分別為1,2,3,4。硬盤1,2構成一組RAID 1,硬盤3,4構成一組RAID 1。這兩組RAID 1再組成一組RAID 0。
RAID 10特點:
l 讀寫能力提升
l 有容錯能力。每組RAID
1允許壞一塊硬盤而不影響數據完整性。
l 可用空間為N*較小硬盤空間大小*50%
l 至少需要用4塊硬盤
7) RAID 01
假設有四塊硬盤,分別為1,2,3,4。硬盤1,2構成一組RAID 0,硬盤3,4構成一組RAID 0。這兩組RAID 0再組成一組RAID 1。
結構圖如下:
RAID 01特點:
l 讀寫能力提升
l 有容錯能力??梢砸唤MRAID0同時壞而不影響數據完整性。
l 可用空間為N*較小硬盤空間大小*50%
l 至少需要用4塊硬盤
五、創建一個大小為10G的RAID1,要求有一個空閑盤,而且CHUNK大小為128k;
1、創建三個磁盤,狀態如下 :
磁盤 /dev/sdb:21.5 GB,
21474836480 字節,41943040 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標簽類型:dos
磁盤標識符:0x6100c71b
設備 Boot Start End Blocks Id System
/dev/sdb1 2048 41943039 20970496 fd Linux raid autodetect
磁盤 /dev/sdc:21.5 GB,
21474836480 字節,41943040 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標簽類型:dos
磁盤標識符:0xa5e6f16a
設備 Boot Start End Blocks Id System
/dev/sdc1 2048 41943039 20970496 fd Linux raid autodetect
磁盤 /dev/sdd:21.5 GB,
21474836480 字節,41943040 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標簽類型:dos
磁盤標識符:0xdbe93c5b
設備 Boot Start End Blocks Id System
/dev/sdd1 2048 41943039 20970496 fd Linux raid autodetect
2、[root@promote ~]# mdadm -C /dev/md0 -a yes -n 2 -l 1 -x 1 -c 128
/dev/sd{b,c,d}
#創建塊大小為128k,有兩塊磁盤,冗余一塊磁盤的raid1
mdadm: /dev/sdb appears to be part of a raid array:
level=raid5 devices=4
ctime=Sun Jul 9 04:47:10 2017
mdadm: partition table exists on /dev/sdb but will be lost or
meaningless after
creating array
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/sdc appears to be part of a raid array:
level=raid5 devices=4
ctime=Sun Jul 9 04:47:10 2017
mdadm: partition table exists on /dev/sdc but will be lost or
meaningless after
creating array
mdadm: /dev/sdd appears to be part of a raid array:
level=raid5 devices=4
ctime=Sun Jul 9 04:47:10 2017
mdadm: partition table exists on /dev/sdd but will be lost or
meaningless after
creating array
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@promote ~]# cat /proc/mdstat #查看狀態
Personalities : [raid6] [raid5] [raid4] [raid1]
md0 : active raid1 sdd[2](S) sdc[1] sdb[0]
20955136 blocks super
1.2 [2/2] [UU]
[===========>………] resync
= 58.2% (12203264/20955136) finish=0.7min speed=200040K/sec
unused devices: <none>
[root@promote ~]#
六、創建一個大小為4G的RAID5設備,chunk大小為256k,格式化ext4文件系統,要求可開機自動掛載至/backup目錄,而且不更新訪問時間戳,且支持acl功能;
1、先創建三個空白磁盤空間,大小都為2G,分區類型改為raid可用的Linux raid autodetect
2、[root@promote ~]# mdadm -C /dev/md0 -a yes -n 3 -l 5 -c 256
/dev/sdb{1,2,3} #創建RAID5設備
mdadm: /dev/sdb1 appears to be part of a raid array:
level=raid0 devices=0
ctime=Thu Jan 1 08:00:00 1970
mdadm: partition table exists on /dev/sdb1 but will be lost or
meaningless after
creating array
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@promote ~]# mdadm -D
/dev/md0 #查看設備信息
/dev/md0:
Version : 1.2
Creation Time : Mon Jul 10
00:13:18 2017
Raid Level : raid5
Array Size : 4190208
(4.00 GiB 4.29 GB)
Used Dev Size : 2095104
(2046.34 MiB 2145.39 MB)
Raid Devices : 3
Total Devices : 3
Persistence : Superblock
is persistent
Update Time : Mon Jul 10
00:13:28 2017
State : clean
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0
Layout :
left-symmetric
Chunk Size : 256K
Name :
promote.cache-dns.local:0 (local to host
promote.cache-dns.local)
UUID :
a862f385:88ce921d:85b08e3e:3116ff37
Events : 18
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 18 1 active sync /dev/sdb2
3 8 19 2 active sync /dev/sdb3
3、[root@promote ~]# mkfs.ext4 /dev/md0 #創建文件系統
mke2fs 1.42.9 (28-Dec-2013)
文件系統標簽=
OS type: Linux
塊大小=4096
(log=2)
分塊大小=4096
(log=2)
Stride=64 blocks, Stripe width=128 blocks
262144 inodes, 1047552 blocks
52377 blocks (5.00%) reserved for the super user
第一個數據塊=0
Maximum filesystem blocks=1073741824
32 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840,
229376, 294912, 819200, 884736
Allocating group tables: 完成
正在寫入inode表: 完成
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
4、創建文件夾
[root@promote ~]# mkdir /backup
5、編輯/etc/fstab文件,新增一行,內容如下:
/dev/md0 /backup ext4 defaults,acl,noatime 0 0
6、運行mount -a 掛載fstab文件中的所有掛載項,然后查找是否掛載成功。
[root@promote ~]# mount -a
[root@promote ~]# mount | grep md0
/dev/md0 on /backup type ext4
(rw,noatime,seclabel,stripe=128,data=ordered)
七、寫一個腳本
(1) 接受一個以上文件路徑作為參數;
(2) 顯示每個文件擁有的行數;
(3) 總結說明本次共為幾個文件統計了其行數;
#!/bin/bash
#
echo “the pwd is $@”
for i in $@;do
lines=`wc -l $i | cut
-d ‘ ‘ -f1 `
echo “the lines
of $i is $lines”
done
echo “the total
files is $#”
八、寫一個腳本
(1) 傳遞兩個以上字符串當作用戶名;
(2) 創建這些用戶;且密碼同用戶名;
(3) 總結說明共創建了幾個用戶;
#!/bin/bash
#
if [ $# -lt 1 ];then
echo “need more
than 2 strings”
exit 2
fi
for username in $@;do
if id $username
&>/dev/null;then
echo
“$username is exists”
else
useradd
$username
echo
“$username” | passwd –stdin $username
fi
done
九、寫一個腳本,新建20個用戶,visitor1-visitor20;計算他們的ID之和;
#!/bin/bash
#
sum=0
for user in visitor{1..20};do
useradd $user
idnum=`id -u $user`
let sum=$sum+$idnum
done
echo “uidsum is $sum”
原創文章,作者:lixinkuan,如若轉載,請注明出處:http://www.www58058.com/79620
可以看出有在很認真的整理,這些將來都是自己的理論積累,加油。