處理交換文件和分區
交換分區是系統RAM的補充
基本設置包括:
1 創建交換分區或者文件
2 使用mkswap寫入特殊簽名
3 在/etc/fstab文件中添加適當的條目
4 使用swapon -a 激活交換空間
掛載交換分區
啓用:swapon swapon [OPTION]... [DEVICE]
-a:激活所有的交換分區;
-p PRIORITY:指定優先級
/etc/fstab:pri=value
禁用:swapoff [OPTION]... [DEVICE]
SWAP的優先級
1 用戶可以給某個swap指定一個0到32767的優先級
2 如果用戶沒有指定,那麼核心會自動給swap指定一個優 先級,這個優先級從-1開始,每加入一個新的沒有用戶 3 指定優先級的swap,會給這個優先級減一。
4 先添加的swap的缺省優先級比較高,除非用戶自己指定 一個優先級,而用戶指定的優先級(是正數)永遠高於核心 5 缺省指定的優先級(是負數)。
6 優化性能:分佈存放,高性能磁盤存放
移動介質
1 掛載意味着使外來的文件系統看起來如同是主目錄樹的一部分
2 訪問前、介質必須被掛載
3 摘除時,介質必須被卸載
4 按照默認設置,非根用戶只能掛載某些設備(光盤、DVD、軟 盤、USB等等)
5 掛載點通常在/media 或/mnt下
使用光盤
1 在圖形環境下自動啓動掛載/run/media/<user>/<label>
2 否則就必須被手工掛載
3 mount /dev/cdrom /mnt/
4 eject命令卸載或彈出磁盤
5 創建ISO文件
cp /dev/cdrom /root/centos7.iso
mkisofs -r -o /root/etc.iso /etc
6 刻錄光盤 wodim –v –eject centos.iso
掛載USB介質
1 被內核探測爲SCSI設備
/dev/sdaX、/dev/sdbX、或類似的設備文件
2 在圖形環境中自動掛載
圖標在[計算機]窗口中創建
掛載在/run/media/<user>/<label>
3 手動掛載
mount /dev/sdb1 /mnt
常見工具
內存空間使用狀態:
free [OPTION]
-m: 以MB爲單位
-g: 以GB爲單位
文件系統空間佔用等信息的查看工具:
df [OPTION]... [FILE]... -H 以1000爲單位
-T 文件系統類型 -h: human-readable
-i:inodes instead of blocks
-P: 以Posix兼容的格式輸出
查看某目錄總體空間佔用狀態: du [OPTION]... DIR
-h: human-readable
- s: summary
工具dd
dd命令:convert and copy a file
用法:
dd if=/PATH/FROM/SRC of=/PATH/TO/DEST
bs=#:block size, 複製單元大小
count=#:複製多少個bs
1 of=file 寫到所命名的文件而不是到標準輸出
2 if=file 從所命名文件讀取而不是從標準輸入
3 bs=size 指定塊大小(既是是ibs也是obs)
4 ibs=size 一次讀size個byte
5 obs=size 一次寫size個byte
6 cbs=size 一次轉化size個byte
7 skip=blocks 從開頭忽略blocks個ibs大小的塊
8 seek=blocks 從開頭忽略blocks個obs大小的塊
9 count=n 只拷貝n個記錄
conv=conversion[,conversion...] 用指定的參數轉換文件。
轉換參數:
ascii 轉換 EBCDIC 爲 ASCII
ebcdic 轉換 ASCII 爲 EBCDIC
block 轉換爲長度爲 cbs 的記錄,不足部分用空格填充。
unblock 替代cbs長度的每一行尾的空格爲新行
lcase 把大寫字符轉換爲小寫字符
ucase 把小寫字符轉換爲大寫字符
swab 交換輸入的每對字節。
noerror 出錯時不停止
notrunc 不截短輸出文件。
sync 把每個輸入塊填充到ibs個字節,不足部分用空(NUL)字符補齊
磁盤拷貝: dd if=/dev/sda of=/dev/sdb
備份MBR: dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
破壞MBR中的bootloader: dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446
舉例如下
有二進制文件 fileA, size>2K。現在想從第64個字節位置 開始讀取,需要讀取的大小是128Byts。又有fileB, 想把上 面讀取到的128Bytes寫到第32個字節開始的位置,替換 128Bytes,請問如何實現?
#dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc
備份:
dd if=/dev/sdx of=/dev/sdy
將本地的/dev/sdx整盤備份到/dev/sdy
dd if=/dev/sdx of=/path/to/p_w_picpath
將/dev/sdx全盤數據備份到指定路徑的p_w_picpath文件
dd if=/dev/sdx | gzip >/path/to/p_w_picpath.gz 備份/dev/sdx全盤數據,並利用gzip工具進行壓縮,保存到指定路徑
恢復:
dd if=/path/to/p_w_picpath of=/dev/sdx
將備份文件恢復到指定盤
gzip -dc /path/to/p_w_picpath.gz | dd of=/dev/sdx
將壓縮的備份文件恢復到指定盤
拷貝內存資料到硬盤
dd if=/dev/mem of=/root/mem.bin bs=1024
將內存裏的數據拷貝到root目錄下的mem.bin文件
從光盤拷貝iso鏡像
dd if=/dev/cdrom of=/root/cd.iso
拷貝光盤數據到root文件夾下,並保存爲cd.iso文件 銷燬磁盤數據
dd if=/dev/urandom of=/dev/sda1
利用隨機的數據填充硬盤,在某些必要的場合可以用來銷燬數據 。執行此操作以後,/dev/sda1將無法掛載,創建和拷貝操作 無法執行
得到最恰當的block size
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
通過比較dd指令輸出中所顯示的命令執行時間,即可確定系統 最佳的block size大小
測試硬盤讀寫速度
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000 通過上兩個命令輸出的執行時間,可以計算出測試硬盤的讀/寫 速度
修復硬盤
dd if=/dev/sda of=/dev/sda 當硬盤較長時間(比如1,2年)放置不使用後,磁盤上 會產生消磁點。當磁頭讀到這些區域時會遇到困難,並可 能導致I/O錯誤。當這種情況影響到硬盤的第一個扇區時 ,可能導致硬盤報廢。上邊的命令有可能使這些數據起死 回生。且這個過程是安全,高效的。
【2】用戶配額 設置 raid卡 的 級別 以及raid卡的設置 raid 5
配置配額系統
綜述 在內核中執行 以文件系統爲單位啓用 對不同組或者用戶的策略不同 根據塊或者節點進行限制 執行軟限制(soft limit) 硬限制(hard limit) 初始化 分區掛載選項:usrquota、grpquota 初始化數據庫:quotacheck
爲用戶設定配額
1 執行開啓或者取消配額:
quotaon、quotaoff
2 直接編輯配額:
edquota username
3 在shell中直接編輯:
setquota usename 4096 5120 40 50 /foo
4 定義原始標準用戶
edquota -p user1 user2
報告配額狀態
報告
用戶調查:quota
配額概述:repquota
其它工具:warnquota
raid卡 簡介
RAID:Redundant Arrays of Inexpensive( Independent) Disks 1988年由加利福尼亞大學伯克利分校(University of California-Berkeley) “A Case for Redundant Arrays of Inexpensive Disks”。 多個磁盤合成一個“陣列”來提供更好的性能、冗餘,或 者兩者都提供
raid卡的 優勢
1 提高IO能力: 磁盤並行讀寫
2 提高耐用性; 磁盤冗餘來實現 級別:多塊磁盤組織在一起的工作方式有所不同 R
AID實現的方式:
外接式磁盤陣列:通過擴展卡提供適配能力
內接式RAID:主板集成RAID控制器
安裝OS前在BIOS裏配置 Software RAID:
RAID級別
RAID-0:條帶卷,strip
RAID-1: 鏡像卷,mirror
RAID-2 ..
RAID-5
RAID-6
RAID-10
RAID-01
RAID-0: 讀、寫性能提升; 可用空間:N*min(S1,S2,...) 無容錯能力 最少磁盤數:2, 2
RAID-1: 讀性能提升、寫性能略有下降; 可用空間:1*min(S1,S2,...) 有冗餘能力 最少磁盤數:2, 2N
RAID-4: 多塊數據盤異或運算值,存於專用校驗盤
RAID-5: 讀、寫性能提升 可用空間:(N-1)*min(S1,S2,...) 有容錯能力:允許最多1塊磁盤損壞 最少磁盤數:3, 3+
RAID-6: 讀、寫性能提升 可用空間:(N-2)*min(S1,S2,...) 有容錯能力:允許最多2塊磁盤損壞 最少磁盤數:4, 4+
RAID混合類型級別
RAID-10: 讀、寫性能提升 可用空間:N*min(S1,S2,...)/2 有容錯能力:每組鏡像最多隻能壞一塊 最少磁盤數:4, 4+
RAID-01、
RAID-50
RAID7: 可以理解爲一個獨立存儲計算機,自身帶有操作系 統和管理工具,可以獨立運行,理論上性能最高的RAID模式 JBOD:Just a Bunch Of Disks 功能:將多塊磁盤的空間合併一個大的連續空間使用 可用空間:sum(S1,S2,...) 常用級別:RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD
軟RAID
mdadm:爲軟RAID提供管理界面 爲空餘磁盤添加冗餘 結合內核中的md(multi devices)
RAID設備可命名爲/dev/md0、/dev/md1、/dev/md2、 /dev/md3等等
軟件RAID的實現
mdadm:模式化的工具
命令的語法格式:mdadm [mode] <raiddevice> [options] <component-devices> 支持的RAID級別:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10
模式:
創建:-C
裝配: -A
監控: -F
管理:-f, -r, -a
<raiddevice>: /dev/md#
<component-devices>: 任意塊設備
-C: 創建模式
-n #: 使用#個塊設備來創建此RAID;
-l #:指明要創建的RAID的級別;
-a {yes|no}:自動創建目標RAID設備的設備文件;
-c CHUNK_SIZE: 指明塊大小;
-x #: 指明空閒盤的個數;
例如:創建一個10G可用空間的RAID5
-D:顯示raid的詳細信息;
mdadm -D /dev/md#
管理模式:
-f: 標記指定磁盤爲損壞
-a: 添加磁盤
-r: 移除磁盤
觀察md的狀態: cat /proc/mdstat
停止md設備: mdadm -S /dev/md#
軟RAID配置實例
使用mdadm創建並定義RAID設備
#mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
用文件系統對每個RAID設備進行格式化
#mke2fs -j /dev/md0
測試RAID設備
mdadm允許檢查RAID設備的狀況
#mdadm --detail|D /dev/md0
增加新的成員 #mdadm –G /dev/md0 –n4 -a /dev/sdf1
軟RAID測試和修復
模擬磁盤故障
#mdadm /dev/md0 -f /dev/sda1
移除磁盤
#mdadm /dev/md0 –r /dev/sda1
從軟件RAID磁盤修復磁盤故障
替換出故障的磁盤然後開機
在備用驅動器上重建分區
#mdadm /dev/md0 -a /dev/sda1
mdadm、/proc/mdstat及系統日誌信息
軟RAID管理
生成配置文件:mdadm –D –s >> /etc/mdadm.conf
停服務:mdadm –S /dev/md0
激活:mdadm –A –s /dev/md0 激活
刪除raid信息:mdadm –zero-superblock /dev/sdb1