1》交換空間概述: 交換空間(Swap Space)是Linux用於暫時補充物理記憶體,以提供更多記憶體空間的一種機制,交換空間對記憶體有限的電腦有所幫助,但不能取代物理記憶體,因為它位於硬碟 上,硬碟的存取速度比記憶體要慢幾個數量級,當同時運行很多程式,而他們不能同時都裝載進記憶體時,使用交換空間是一種很有 ...
1》交換空間概述:
交換空間(Swap Space)是Linux用於暫時補充物理記憶體,以提供更多記憶體空間的一種機制,交換空間對記憶體有限的電腦有所幫助,但不能取代物理記憶體,因為它位於硬碟 上,硬碟的存取速度比記憶體要慢幾個數量級,當同時運行很多程式,而他們不能同時都裝載進記憶體時,使用交換空間是一種很有效的手段,而用戶在這些程式之間快速切換,可能 會有一個明顯的延時,Linux支持兩種形式的交換空間:專用磁碟分區和交換文件;磁碟分區效率高,推薦使用,而交換文件更為靈活,但效率低,Linux系統最多可以有32個交換 空間,每個交換空間最大2GB;
推薦的系統交換空間大小如下:
物理記憶體 推薦的交換空間
不超過4GB 至少2GB
4~16GB 至少4GB
16~64GB 至少8GB
64~256GB 至少16GB
256~512GB 至少32GB
1>增加交換空間:
系統物理記憶體的調整,或者需要大量使用記憶體的操作或運行需要大量記憶體的程式,往往需要增加交換空間,這有3種方法可供選擇:創建一個交換分區,創建一個交換 文件,在現有的LVM邏輯捲上擴展交換分區(推薦使用此種方式);
1)創建交換空間的交換文件:
(1)確定新建交換文件的塊大小和塊數量,例如塊大小為1MB,塊數量是200,整個空間大小為200MB;
(2)用dd命令創建一個交換文件,其中of指定文件名,bs和count是塊大小和數量;
(3)使用mkswap命令基於上述文件創建一個交換空間:
(4)使用swapon命令啟用該交換空間:
(5)使用swapon -s 命令查看當前啟用的所有交換空間,可見新增的交換空間/tmp/swapfile已經啟用,只是優先順序較低;
當然,還可以用free命令來查看當前的交換記憶體大小,以上設置的交換空間都是臨時性的,要讓它在系統啟動時自動啟用,還必須在/etc/fstab文件加上 相應的定義;
2>擴展基於邏輯捲的交換空間:
Red Hat Enterprise Linux 5安裝時預設將交換分區建在/dev/VolGroup00/LogVol0l邏輯捲上面,可利用邏輯捲的特性靈活擴展交換空間;
1)停用基於相應邏輯捲的交換空間:
swapoff -v /dev/VolGroup00/LogVo101
2)為現有邏輯捲增加空間(這裡增加256MB)
lvm lvresize /dev/VolGroup00/LogVo101 +256MB
3)重新建立交換空間:
mkswap /dev/VolGroup00/LogVo101
4)執行命令swapon -va啟用擴展的邏輯捲用於交換空間;
5)執行命令cat /proc/swaps或者free檢查基於邏輯捲交換空間的擴展是否正常啟用;
3>創建用於交換空間的邏輯捲:
通常創建邏輯捲用作交換空間;
1)創建一個邏輯捲,這裡假設其名稱為/dev/VolGroup00/LogVol02,大小為256MB;
lvm lvcreate VolGroup00 -n LogVol02 -L 256M
2)使用mkswap命令格式化新的交換空間:
mkswap /dev/VolGroup00/LogVol02
3)在/etc/fstab文件中添加以下條目,讓系統啟動時自動掛載該文件系統;
/dev/VolGroup00/LogVol02 swap swap defaults 0 0
4)執行命令swapon -va啟用擴展的邏輯捲用於交換空間;
5)執行命令cat /proc/swaps或者free檢查基於邏輯捲的交換空間是否正常使用;
4>減少交換空間:
有時還要減少交換空間,如減少物理記憶體後相應地減少交換空間,這也有3種方法供選擇,分別是刪除交換分區所有的整個LVM邏輯捲,刪除交換文件或縮減現有 LVM邏輯捲上的交換空間;
1)刪除交換文件:
(1)執行命令swapoff停用交換空間;
(2)從/etc/fstab文件中刪除該交換空間的條目;
(3)使用rm命令刪除交換文件本身;
2)縮減基於邏輯捲的交換空間;
(1)停用相應邏輯捲的交換空間;
swapoff -v /dev/VolGroup00/LogVol01
(2)減少邏輯捲大小:
lvreduce /dev/VolGroup00/LogVol01 -L -512M
(3)重新格式化新的交換空間:
mkswap /dev/VolGroup00/LogVol01
(4)啟用該邏輯捲用於交換空間,然後進行測試;
3)刪除基於邏輯捲的交換空間:
(1)停用該邏輯捲的交換空間:
swapoff -v /dev/VolGroup00/LogVol02
(2)刪除該邏輯捲:
lvremove /dev/VolGroup00/LogVol02
(3)從/etc/fstab文件中刪除該交換空間的條目;
2》文件系統的備份:
備份就是保留一套後備系統,做到有備無患,是系統管理員最重要的日常管理工作之一,恢復就是將數據恢復到事故之前的狀態,為保證數據的完整性,需要對系統進行 備份;
1>備份內容:
在Linux操作系統中,按照要備份的內容,備份分為系統備份和用戶備份,系統備份就是對操作系統和應用程式的備份,便於在系統崩潰以後能快速,簡單,完全 地恢復系統的運行,最有效的方法就是僅僅備份那些對於系統崩潰以後恢復所必需的數據;用戶備份不同於系統備份,原因是用戶的數據變動更加頻繁一些,當備份用 戶數據時,只是為用戶提供一個虛擬的安全網路空間,合理地放置最近用戶數據文件的備份,當出現任何問題時,如誤刪除某些文件或者硬碟發生故障時,用戶可以恢 復自己的數據,用戶備份應該比系統備份更加頻繁,可採用自動定期運行某個程式的方法來備份數據;
2>備份策略:
在進行備份之前,首先要選擇合適的備份策略,決定何時需要備份,以及出現故障時進行恢復的方式,通常使用的備份方式有以下3種:
1)完全備份:
對系統進行一次全面的備份,在備份間隔期間一旦出現數據丟失等問題,可以使用上一次的備份數據恢復到備份之前的數據狀況,這種方式所需時 間最長,但恢復時間最短,操作最方便,當系統中數據量不大時,採用完全備份最可靠;
2)增量備份:
只對上一次備份後增加的和修改過的數據進行備份,這種方式可縮短備份時間,快速完成備份,但是可靠性較差,備份數據的份數太多,這種方式 很少採用;
3)差異備份:
對上一次完全備份(而不是上次備份)之後新增加或修改過的數據進行備份,這種方式兼具完全備份和增量備份的優點,所需時間短,並節省空 間,恢復方便,系統管理員只需兩份數據,就可以將系統完全恢復,這種方式適用於各種備份場合;
3>備份規劃
專業的備份工作需要認真規劃,兼顧安全與效率,而不是簡單地執行備份程式,實際備份工作中主要採用以下兩種方案:
單純的完全備份:
定時為系統進行完全備份,需要恢復是以最近一次的完全備份數據來還原,這是最簡單的備份方案,但由於每次備份時,都會將全部的文 件備份下來,每次備份所需時間較長,適合數據量不大或者數據變動頻率很高的的情況;
完全備份結合差異備份:
以較長周期定時進行完全備份,期間則進行較短周期的差異備份,例如每周六晚上做1次標準備份,每天晚上做一次差異備份,需要恢復時 先還原最近一次完全備份的數據,接著再還原該完全備份後最近一次的差異備份,如果周三出現事故,則可將數據恢復到周二晚上的狀態,先還 原上周六的完全備份,再還原本周二的差異備份即可;
3》數據備份操作:
在Linux系統中,可以使用多種工具和存儲介質進行備份;
1>使用tar命令進行備份:
直接保存數據會占用很大的空間,所以常常壓縮備份文件,以便節省存儲空間,tar是用於文件打包的命令行工具,可以將一系列文件歸檔到一個大文件中, 也可以將檔案文件解開已恢複數據,作為常用的備份工具,tar的語法格式如下:
tar [選項] 檔案文件 文件或目錄列表
列如要備份用戶zhongxp主目錄中的文件,可以執行以下命令:
tar -czvf zxpbak.tar /home/zhongxp
上述命令將/home/zhongxp目錄中的所有文件歸檔(打包)到zxpbak.tar文件(擴展名一般為.tar),歸檔的同時對數據進行壓縮(使用選項-z);
要恢復使用tar命令備份過的文件(解開檔案文件),可使用選項-x
tar -xzvf zxpbak.tar
預設情況下,tar將文件恢復到當前工作目錄,也可以使用選項-C指定要恢復到的目錄;
2>使用dump和restore實現備份和恢復:
dump是一個較為專業的備份工具,能備份任何類型的文件,甚至是設備,支持完全備份,增量備份和差異備份,支持跨多捲磁帶備份,保留所備份文件的所 有權屬性和許可權設置,能夠正確處理從未包含任何數據的文件塊(孔洞文件),restore是對應的恢復工具,紅帽5系統預設已經安裝了dump和restore這兩個工具;
1)使用dump命令備份:
在用dump做備份時,需要指定一個備份級別,它是0-9之間的一個整數,級別為N的轉儲會對上次進行的級別小於N的轉儲操作以來修改過的所 有文件進行備份,而級別0就是完全備份,通過這種方式,可以很輕鬆的實現增量備份,差異備份,甚至每日備份;
例如,以下命令統計完全備份/dev/sda1所需的空間,以防磁帶或磁碟空間不足,級別0表示完全備份,選項-s表示統計備份所需空間:
dump -0s /dev/sda1
選項-f指定備份文件的路徑和名稱,-u表示更新資料庫文件/etc/dumpdates(將文件的日期,存儲級別,文件系統等信息都記錄下來);
dump -0u -f /tmp/boot.dump /boot
如果不使用-u,所有存儲都會變為級別0,因為沒有先前備份過當前文件系統的記錄;
使用級別1只會備份完全備份後有變化的文件;
要實現增量備份,第一次備份時可選擇級別0,以後每次做增量備份時就可以依次使用級別1,級別2,級別3等等;
dump -0u -f /tmp/boot0.dump /boot
dump -1u -f /tmp/boot1.dump /boot
dump -2u -f /tmp/boot2.dump /boot
dump -3u -f / tmp/boot3.dump /boot
要實現差異備份,可先選擇級別0做完整備份,然後每次都使用大於0的同一級別,如每次都使用級別1:
dump -0u -f /tmp/boot0.dump /boot
dump -1u -f /tmp/boot1.dump /boot
dump -1u -f /tmp/boot2.dump /boot
dump -1u -f /tmp/boot3.dump /boot
dump可以將備份存儲在磁帶上,Linux通常用/dev/st0代表倒帶設備,而用/dev/nst0代表非倒帶設備,如下所示:
dump 0f /dev/nst0 /boot
使用倒帶設備存儲時,當磁帶用完它會自動倒帶並接著存儲,會覆蓋以前的數據,這樣就存在丟失已有數據的風險;
2)使用restore命令恢復:
使用restore命令從dump備份中恢複數據可以使用兩種方式:互動式和直接恢復,管理員也可以決定恢復整個備份,或者只恢復需要的文件,恢 複數據之前,要瀏覽備份文件中的數據,可以使用如下命令(-t 選項表示查看):
要恢復一個備份,可以使用如下命令(-r選項表示重建):
restore -rf /tmp/boot.dump
使用以下命令進入互動式恢復模式:
restore -if /tmp/boot.dump
3>光碟備份:
紅帽5安裝有cdrecord軟體包,可以用來創建和管理光碟介質,使用光碟進行數據備份,需要首先建立一個光碟鏡像文件,然後將該鏡像文件寫入光碟 中:
例如,要將/home目錄的數據備份到光碟鏡像文件中,可以使用如下命令:
mkisofs -r -o /tmp/home.iso /home
上述命令會在/tmp目錄中建立一個名為home.iso的鏡像文件,該文件包含/boot目錄的所有內容,其中-r選項表示支持長文件名,-o表示輸出,預設 情況下,mkisofs命令也會保留所備份文件的所有權屬性和許可權設置;除了使用mkisofs命令,還可以使用dd命令建立光碟映像:
dd if=/dev/sda1 of=/tmp/boot.iso
在dd命令中,if參數指定輸入文件,of參數指定輸出文件,dd命令的if參數必須是文件,而不能是一個目錄,這裡進行/boot目錄的備份時,實際使用 的參數是/dev/sda1,即/boot目錄對應的磁碟分區;
刻錄機在Linux中被識別為SCSI設備,即使該設備實際上是IDE設備,在實際刻錄光碟之前,可以使用以下命令對刻錄設備進行檢測,獲取光碟刻錄 機的SCSI設備識別號以便在刻錄光碟的工具中使用;
cdrecord -scanbus
上述命令現實的結果前一項的前3個數字分別指SCSI匯流排,設備標識和LUN(邏輯單元號,),運行cdrecord刻錄需要這3個數字:
使用cdrecord命令將ISO文件刻錄為光碟的語法格式如下:
cdrecord -v -eject <speed=刻錄速度> <dev=刻錄機設備識別號> <ISO文件名>
-eject表示刻錄完畢彈出光碟,例如,刻錄機設備識別號為0,1,0,將鏡像文件刻錄到空白光碟中的命令如下:
cdrecord -v dev=0,1,0 home.iso