天天看點

九、 進階檔案系統管理

磁盤配額

定義:限制使用者群組在指定分區上的使用空間和檔案數目(inode号數量)

磁盤配額限制類型:

1.限制使用者群組對磁盤空間的使用量

2.限制使用者群組在磁盤内建立檔案的個數

磁盤配額限制級别:

1.軟限制:低級限制,此限制可以突破,突破時會被警告,超出部分會有寬限天數,寬限天數到期後超出部分被清空, 軟限制不能超過硬限制

2.硬限制:絕對限制,此限制不會被突破,達到指定限制後無法使用更多空間

3.寬限天數:當有資料超過軟限制後,超出部分會被計時,寬限天數到期後軟限制會變成硬限制,寬限天數預設是7天

注:磁盤配額是針對分區進行設定的,無法實作“某使用者在系統中共計隻能使用50MB磁盤空間”隻能設定某使用者在/home分區能使用30M這樣的限制。磁盤配額是針對分區的。

RAID磁盤陣列

1、定義:獨立磁盤構成的具有備援能力的陣列

2、磁盤陣列分類:一是外接式磁盤陣列櫃、二是内接式磁盤陣列卡,三是利用軟體來仿真

1.通過把多個磁盤組織在一起作為一個邏輯卷提供磁盤跨越功能

2.通過把資料分成多個資料塊(Block)并行寫入/讀出多個磁盤以提高通路磁盤的速度

3.通過鏡像或校驗操作提供容錯能力

raid比較

卷名 磁盤數量 磁盤容量 讀寫速度 動态擴容 磁盤容錯 存儲空間 安全等級 壞1塊 壞2塊

Raid 0 n>=2 必須一樣 最快 否 否 100% 低 報廢 報廢

Raid 1 n=2 必須一樣 最慢 否 是 50% 最低 可用 報廢

Raid 10 n>=4 一樣 最快 否 是 50% 高 可用 可用,不是一邊壞

Raid 5 n>=3 必須一樣 較快 否 是 n-1 高 可用 報廢

LVM邏輯卷組

1、LVM構成
硬碟 → 實體卷PV → 卷組VG → 邏輯卷LV
	實體卷PV:由磁盤或分區轉化而成
	卷組VG:将多個實體卷組合在一起組成了卷組,組成同一個卷組的可以是同一個硬碟的不同分區,也可以是不同硬碟上的不同分區,類似于一塊硬碟。
邏輯卷LV:類似于硬碟的分區
           
1) 準備多塊磁盤
2) 将硬碟轉化成實體卷(PV)
	# pvcreate /dev/sdf 				生成實體卷
	# pvscan   或 # pvdisplay 			檢視實體卷PV
	# pvremove 							删除實體卷
3) 将建立好的實體卷組合成卷組(VG)。
	vgcreate  [選項]  卷組名 實體卷名(可以寫多個,空格分開)
				-s	大小:指定VG的PE大小
	# vgcreate vg0 /dev/sdd /dev/sde	生成卷組
	# vgscan   或 # vgdisplay 			檢視卷組VG
	# vgextend	卷組名	實體卷名			增加卷組容量
	# vgreduce	卷組名	實體卷名 			減小卷組容量
	# vgreduce –a 卷組 					删除指定卷組内所有空的實體卷
	# vgremove							删除卷組
4) 将卷組劃分成邏輯卷(LV),邏輯卷也是可以随意調整大小的,邏輯卷相當于分區,必須進行格式化和挂載。
	lvcreate	選項	-n 邏輯卷名	卷組名
		-L	容量:指定建立的邏輯卷大小,機關:MB,GB,TB等
		-l(小)	個數:按照PE個數來指定邏輯卷大小
		-n	邏輯卷名:指定邏輯卷叫什麼名
	# lvcreate -L 40G -n lv0 vg0		生成邏輯卷
	# mkfs.ext4 /dev/vg0/lv0			格式化(寫入檔案系統)
	# mount /dev/vg0/lv0 /D/			挂載
5) 修改邏輯卷容量--lvextend
	修改lv及檔案系統的大小,必須先将lv及檔案系統解除安裝(umount)
	lvextend -L +10G /dev/vg0/lv0			先增加lv的大小(修改MBR分區表資料)
	resize2fs -f /dev/vg0/lv0 30G			再修改檔案系統的大小(修改super block資料)
	減少lv空間的操作是有風險的,		操作之前一定要做好備份,以免資料丢失。
	# e2fsck -f /dev/vg0/lv0				檢查檔案系統
	# resize2fs /dev/vg0/lv0 newsize		減少後檔案系統大小
	# lvreduce -L newsize /dev/vg0/lv0		減少後lv大小
           

dd指令

1、dd:用指定大小的塊拷貝一個檔案。
if=檔案名:輸入檔案名,預設為标準輸入。即指定源檔案。< if=input file >
of=檔案名:輸出檔案名,預設為标準輸出。即指定目的檔案。< of=output file >
bs=bytes:同時設定讀入/輸出的塊大小為bytes個位元組。
count=blocks:僅拷貝blocks個塊,塊大小等于ibs指定的位元組數。
dd if=/dev/zero of=/movie/* bs=1M count=40
	if=資料來源位址
	of=資料目标位址
	bs=每次寫入指定目标時,所寫入的塊的大小(最好用4096-保證和block大小一緻)
	count=所寫入的塊的個數
僞裝置檔案:
	/dev/zero 		:擁有無限個0的裝置
	/dev/null		:“黑洞”,也稱為位桶(bit bucket),可以接收任何資料(不限大小)
	/dev/urandom	:随機裝置檔案,輸出随機字元
2、dd應用執行個體
1.将本地的/dev/hdb整盤備份到/dev/hdd
		dd if=/dev/hdb of=/dev/hdd
2.将/dev/hdb全盤資料備份到指定路徑的image檔案
		dd if=/dev/hdb of=/root/image
3.将備份檔案恢複到指定盤
		dd if=/root/image of=/dev/hdb
4.備份/dev/hdb全盤資料,并利用gzip工具進行壓縮,儲存到指定路徑
		dd if=/dev/hdb | gzip > /root/image.gz
5.将壓縮的備份檔案恢複到指定盤
		gzip -dc /root/image.gz | dd of=/dev/hdb
6.備份與恢複MBR
a.備份磁盤開始的512個位元組大小的MBR資訊到指定檔案,拷貝一個512位元組的塊:
	dd if=/dev/hda of=/root/image bs=512 count=1
b.恢複:将備份的MBR資訊寫到磁盤開始部分
	dd if=/root/image of=/dev/had
7.拷貝記憶體内容到硬碟
		dd if=/dev/mem of=/root/mem.bin bs=1024 (指定塊大小為1k)
8.拷貝CD光牒内容到指定檔案夾,并儲存為cd.iso檔案
		dd if=/dev/cdrom(sr0) of=/root/cd.iso
9.增加swap分區檔案大小
第一步:建立一個大小為256M的檔案:
	dd if=/dev/zero of=/swapfile bs=1024 count=262144
第二步:把這個檔案變成swap檔案:
	mkswap /swapfile
第三步:啟用這個swap檔案:
	swapon /swapfile
第四步:編輯/etc/fstab檔案,使在每次開機時自動加載swap檔案:
	/swapfile swap swap default 0 0
10.銷毀磁盤資料
		dd if=/dev/urandom of=/dev/hda1
		注意:利用随機的資料填充硬碟,在某些必要的場合可以用來銷毀資料。
11.測試硬碟的讀寫速度
		dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
		dd if=/root/1Gb.file bs=64k | dd of=/dev/null
通過以上兩個指令輸出的指令執行時間,可以計算出硬碟的讀、寫速度。
12.确定硬碟的最佳塊大小:
		dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
		dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file
		dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file
		dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file
通過比較以上指令輸出中所顯示的指令執行時間,即可确定系統最佳的塊大小。

13. 資料銷毀:
	# dd if=/dev/zero of=/dev/sdb 
14. 測試磁盤的讀寫效率
	# dd if=/dev/zero of=/movie/aaa bs=4096 count=512		15. 測試寫入效率
	# dd if=/movie/aaa of=/dev/null bs=4096