Red Hat Linux System Administrator Unit 7 - Advanced Filesystem Management
學習目標
Configuring the Quota System
1. kernel 需要支援
2. 獨立的 partition 來做 quota
3. 可以限制 user 或 gruop 的 quota,限制其 blocks or imodes 的數量,分成 soft quota 跟 hard quota,超過 soft quota 限制系統提出警告,若超過 hard quota 限制則強制不予寫入磁碟。
4. partition mount 的參數: usrquota, grpquota
5. 初始化 quota 的資料庫:quotacheck
Setting Quotas for Users
啟動/關閉 quota: quotaon/quotaoff, ex: # quotaon /home
編輯設定 user 的 quota:# edquota username
# setquota username softquota(Kb) hardquota(Kb) inode_unmber_of_softquota inode_number_of_hardquota /directory
From Sheel 直接設定: # setquota username 4096 5120 40 50 /foo
複製 quota 的 prototypical 設定:# edquota -p user1 user2
設定 grace period 時間(超過 soft quota 的緩衝時間): # edquota -t
查看 user 的 quota: # quota user
查看 quota 設定: # repquota -a
Miscellaneous utilities: warnquota,可以寫script
What is Software RAID?
RAID0: Striping,把兩顆硬碟串成一顆高效能的硬碟,容量是 1+1 = 2
RAID1: Mirroring,兩顆硬碟做鏡像,容量是 1+1=1
RAID5: 三顆或三顆以上硬碟互相做備援,可容忍系統掛一顆硬碟 還可以正常運作,可使用1顆或1顆以上備用硬碟(spares)
mdadm,指令操作管理 RAID0, RAID1, RAID5
RAID 的設備檔名稱: /dev/md0, /dev/md1, /dev/md2 以此類推
Software RAID Configuration
# mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 /dev/hda1 /dev/hdb1 /dev/hdc1
/dev/md0,新建的 RAID 設備檔
-a, --auto{=no,yes,md,mdp,part,p}
-n,設定幾顆 online 的硬碟
-x,設定幾顆 spare 的硬碟
格式化硬碟
# mke2fs -j /dev/hdd1 或
# mkfs.ext3 /dev/hdd1
查看 RAID 設備檔
# mdadm --detail /dev/md0
Software RAID Testing and Recovery
模擬硬碟掛掉
# mdadm /dev/md0 -f /dev/hdb1 或
# mdadm /dev/md0 --fail /dev/hdb1
查看 RAID 的狀況,recovering 進度
# cat /proc/mdstat
換新硬碟後,再加入 RAID 中
# mdadm /dev/md0 -a /dev/hdb1 或
# mdadm /dev/md0 --add /dev/hdb1
Creating Logical Volumes
讓硬碟成為 PV 格式
# pvcreate /dev/hda3
建立 Volume group
# vgcreate vg0 /dev/hda3
建立 Logical Volume
# lvcreate -L 300M -n data vg0
格式化硬碟
# mke2fs -j /dev/vg0/data
Resizing Logical Volumes
Growing Volumes,加大空間的順序
Shrinking volumes,縮減空間的順序
Logical Volume Manager Snapshots
Using LVM Snapshots
建立當時data的snapshot,存成databackup
# lvcreate -l 64 -s -n databackup /dev/vg0/data
# umount /data
將實體 partition 建立成為 PV
# pvcreate /dev/md0
將 /dev/md0 加入 vg1
# vgcreate vg1 /dev/md0
# vgdisplay vg1
建立完 LV 就已經完成最後一道手續, 類似 /dev/hda1, /dev/hdb2 這種 partition 了,可以掛載 /home, /usr...這些系統目錄
# lvcreate -n data -l 20 vg1
# mkfs.ext3 /dev/vg1/data
# vi /etc/fstab
/dev/vg1/data /data ext3 defaults 1 2
# mount -a
Sequence4
# pvcreate /dev/md1
把 /dev/md1 也加入 vg1
# vgextend vg1 /dev/md1
加大 /dev/vg1/data 的空間
# lvextend -L +40M /dev/vg1/data
寫入系統
# resize2fs /dev/vg1/data
# df -h
檔案系統 容量 已用 可用 已用% 掛載點
/dev/mapper/VolGroup00-LogVol00
7.1G 1.4G 5.4G 20% /
/dev/hda1 99M 12M 83M 13% /boot
tmpfs 147M 0 147M 0% /dev/shm
/dev/mapper/vg1-data 117M 5.6M 105M 6% /data
Sequence5
# umount /data
縮小空間前先fsck
# fsck -f /dev/vg1/data
先縮小系統
# resize2fs /dev/vg1/data 20M
再縮小LV
# lvreduce /dev/vg1/data -L 20M
重新掛載 /data 來驗證一下空間的變化
# mount /dev/vg1/data /data
# df -h
檔案系統 容量 已用 可用 已用% 掛載點
/dev/mapper/VolGroup00-LogVol00
7.1G 1.4G 5.4G 20% /
/dev/hda1 99M 12M 83M 13% /boot
tmpfs 147M 0 147M 0% /dev/shm
/dev/mapper/vg1-data 20M 4.6M 14M 25% /data
Sequence6
# cp -r /var/log/* /data/
# ls /data/
建立一個snapshot
# lvcreate -L 16M -p r -s -n data-backup /dev/vg1/data
# mkdir /mnt/data-backup
用read only mount 起來,才能看見內容
# mount -o ro /dev/vg1/data-backup /mnt/data-backup/
把資料先dump在/tmp 目錄中
# dump -0u -f /tmp/data-backup.dump /mnt/data-backup/
# umount /mnt/data-backup/
刪除 snapshot
# lvremove /dev/vg1/data-backup
# umount /data/
格式化
# mkfs.ext3 /dev/vg1/data
# mount /data/
沒有內容了
# ls /data/
回復備份資料
# restore -rf /tmp/data-backup.dump
資料又回來了
# ls /data/
By SmallKen