第一章 基本架设服务器流程
生活随笔
收集整理的這篇文章主要介紹了
第一章 基本架设服务器流程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
雖然不同的服務器提供的服務并不相同,而且每種服務的原理也不見得都一樣,不過
,每種服務器由規劃、架設到后續的安全維護, 其實整個流程是大同小異的。什么?你不相信啊?為了讓你相信,那我們就來一項一項的分析看看吧!
網絡服務器成功聯機的分析
底下我們就整個服務器的簡易架設流程當中來分析一下,以了解為什么了解操作系統的基礎對于網站維護是相當重要的呢?首先,到底我們是如何聯機到服務器的? 聯機到服務器又取得啥咚咚?我們先以底下這張圖示來作個簡單的說明好了:
tu
先來理解一下,到底我們聯機到服務器想要得到什么?舉例來說,你聯機到 Youtube 想要看影片,所以對方就提供影片串流數據給你; 你連到 Yahoo 想要看新聞,所以對方就提供新聞的文本文件給你;你聯機到無名小站想要看美女,對方就傳圖檔給你;你聯機 Facebook 想要去種田,對方就參考你之前留下來的記錄,從數據庫里面將你的記錄拿出來傳給你。看到沒有,你聯機到服務器,重點在取得對方的數據, 而一般數據的存在就是使用檔案啰!那你有沒有權限取得?最終與該文件系統的設定有關啦!
上圖顯示的是: 首先,客戶端到服務器的網絡要能夠通,等到客戶端到達服務器后,會先由服務器的防火墻判斷該聯機能否放行, 等到放行之后才能使用到服務器軟件的功能。 而該功能又得要通過 SELinux 這個細部權限設定的項目后,才能夠讀取到文件系統。 但能不能讀到文件系統呢? 這又跟文件系統的權限 (rwx) 有關啦!上述的每個部分都要能夠成功,否則就無法順利讀取數據啰。
所以,根據上面的流程我們大概可以將整個聯機分為幾個部分, 包括:網絡、服務器本身、內部防火墻軟件設定、各項服務配置文件、細部權限的 SELinux 以及最終最重要的檔案權限。底下就分幾個細項來談談啰。
A 網絡:了解網絡基礎知識與所需服務之通訊協議
既然要架設服務器,首先當然得要了解一下因特網。因為不管是哪種操作系統,若想要與因特網聯機,這個網絡基礎就得了解。 舉例來說,『網域』是經常會談到的概念,當你發現一個設定為 192.168.1.0/255.255.255.0 時,曉得那是什么鬼東西嗎? 如果不知道的話,呵呵!絕對無法設定好網站的啦!另外,為何你需要服務器?當然是想要達成某項網絡服務。 舉例來說,傳輸檔案可以用 FTP,那 WWW 可以傳遞檔案嗎?網芳可以傳遞嗎?各有何用處?哪個比較方便? 對于客戶或老板來說,我們所設定的服務能否滿足他們的需求等等,這都需要了解,否則你將一頭霧水啊! 因此這部份你就得要了解:
基本的網絡基礎知識:包括以太網絡硬件與協議、TCP/IP、網絡聯機所需參數等;
各網絡服務所對應的通訊協議原理,以及各通訊協議所需對應的軟件。
B 服務器本身:了解架網絡服務器之目的以配合主機的安裝規劃
想要架設服務器嗎?那...架什么服務器?這個服務器要不要對 Internet 開放?這個服務要不要針對客戶提供相關賬號? 要不要針對不同的客戶賬號進行例如磁盤容量、可活動空間與可用系統資源進行限制?如果要進行各項資源的限制, 那服務器操作系統應該要如何安裝與設定?問題很多吧!所以,先了解你要的服務器服務目的之后,后續的規劃才能陸續出爐。 不過,如果架站只是為了『練功』而已,呵呵!那就不需要考慮太多了~
C 服務器本身:了解操作系統的基本操作
網絡服務軟件是 需要建置在操作系統上面的,所以基本的操作系統操作就得要了解才行啊!包括軟件如何安裝與移除? 如何讓系統進行例行的工作管理?如何依據服務器服務之目的規劃文件系統?如何讓文件系統具有未來擴充性 (LVM 之類)? 系統如何管理各項服務之啟動?系統的開機流程為何?系統出錯時,該如何進行快速復原等等,這都需要了解的呢!
D 內部防火墻設定:管理系統的可分享資源
一部主機可以擁有多種服務器軟件的運作,而很多 Linux distributions 出廠的默認值就已經開放很多服務給 Internet 使用了,不過這些服務可能并不是你想要開放的呢。我們在了解網絡基礎與所需服務的目的之后, 接下來就是透過防火墻來規范可以使用本服務器服務的用戶,以讓系統在使用上擁有較佳的控管情況。 此外,不管你的防火墻系統設定的再怎么嚴格,只要是你要開放的服務, 那防火墻對于該服務就沒有保護的效果。因此,那個重要的在線更新軟件機制就一定要定期進行!否則你的系統將會非常非常的不安全!
E 服務器軟件設定:學習設定技巧與開機是否自動執行
剛剛第一點就提到我們得要知道每種服務所能達成的功能,如此一來才能夠架設你所需要的服務的網站。 那你所需要的服務是由哪個軟件達成的?同一個服務可否有不同的軟件?每種軟件可以達成的目的是否相同? 依據所需要的功能如何設定你的服務器軟件?架設過程中如果出現錯誤,你該如何觀察與除錯? 可否定期的分析服務器相關的登錄信息,以方便了解該服務器的使用情況與錯誤發生的原因? 能否通知多個用戶進行聯機測試,以取得較佳的服務器設定值?所以這里你可能就得要知道:
軟件如何安裝、如何查詢相關配置文件所在位置;
服務器軟件如何設定?
服務器軟件如何啟動?如何設定自動開機啟動?如何觀察啟動的埠口?
服務器軟件激活失敗如何除錯?如何觀察登錄檔?如何透過登錄檔進行除錯?
透過客戶端進行聯機測試,如果失敗該如何處理?聯機失敗的原因是服務器還是防火墻?
服務器的設定修改是否有建立日志?登錄檔是否有定期分析?
服務器所提供或分享的數據有無定期備份?如何定期自動備份或異地備份?
F 細部權限設定:包括 SELinux 與檔案權限
等到你的服務器全部設定妥當,最后你所提供的檔案數據權限卻是給了『 000 』的權限分數, 那鳥哥很肯定的說,大家都無法讀到你所提供的數據啊...!此外,新的 distributions 都建議你要啟動 SELinux ,那是什么咚咚? 如果你的數據放置于非正規的目錄,那該如何處理 SELinux 的問題?又如何讓檔案具有保密性或共享性 (檔案權限概念與 ACL 等) 等等,這也都是需要厘清的觀念喔!
上述的服務器架設流程中,其實除了第 5 點之外,其他步驟在各服務器設定都需要了解啊!而且都是一樣的東西說! 因此,這些基礎如果學會了,最終,你只要知道第 5 點里面那個軟件的基礎設定,你的服務器一下子就可以設定完成啦! 這樣說,你是否開始覺得基礎學習很重要啊! ^_^
一個常見的服務器設定案例分析
上面講完后或許你還是不很清楚到底這些技能如何串起來?鳥哥這里提供一個簡單的案例來分析一下好了, 這樣你應該就比較容易清楚的知道為何需要學習這些咚咚。
A 網絡環境:假設你的環境里面 (不管是家里還是宿舍) 共有五部計算機,這五部計算機需要串接在一起,且都可以對外聯機;
B 對外網絡:你的環境只有一個對外的聯機方式,這里假設是臺灣較流行的 ADSL 或 10M 的光纖這種透過電話線撥接的類型;
C 額外服務:你想要讓這五部計算機都可以上網,而且其中還有一部可以做為網絡驅動器機,提供同學或家人作為數據備份與分享之用;
D 服務器管理:由于你可能需要進行遠程管理,因此你這部服務器得要開放聯機機制,以讓遠程計算機可以聯機到這部主機來進行維護;
E 防火墻管理:因為擔心這部做為檔案分享服務器的系統被攻擊,因此你需要針對 IP 來源進行登入權力的控制;
F 賬號管理:另外,由于同學的數據有隱密與共享之分,因此你還得要提供每個同學個別的賬號, 且每個賬號都有磁盤容量的使用限制;
后端分析:最后,由于擔心系統出問題所以你得要讓系統自動定期分析磁盤使用量、登錄文件參數信息等等。
在上述的環境中,你要考慮的東西有哪些呢?依據本小節一開始談到的六個步驟來分析的話,你可能需要底下這些咚咚喔!
了解網絡基礎
硬件規劃
我們想要將五部計算機串接在一塊,但是卻又只有一個可以對外的聯機,此時就得要購買集線器 (hub) 或者是交換器 (switch) 來串接所有的計算機了。但是這兩者有何不同?為何 switch 比較貴?我們知道網絡線被稱為 RJ-45 的網絡線, 但網絡線材竟然有等級之分,這個等級要怎么分辨?不同等級的線材速度有沒有差異?等到這些硬件基礎了解之后, 你才能夠針對你的環境來進行聯機的設計。這部份我們等到下一章再來介紹。
聯機規劃
由于只有一條對外聯機而已,因此通常我們就建議你可以用如下的方式來串接你的網絡:
TU
透過 IP 分享器,我們的五部計算機就都能夠上網了。此時你得要注意,能否上網與 Internet 有關, Internet 就是那有名的 TCP/IP 通訊協議,而想要了解網絡就得要知道啥是 OSI 七層協定。我們也知道能連上 Internet 與所謂的 IP 有關,那么我們內部這五部計算機所取得的 IP 能不能拿來架站?也就是說, IP 有沒有不同種類? 如果 IP 分享器突然掛了,那你的這五部計算機能不能聯機玩魔獸?這就考慮你的網絡參數設定問題了!
網絡基礎
如果你的同學或家人跑來跟你說,網絡不通哩!你直覺會是什么?硬件問題?軟件問題?還是啥莫名其妙的問題? 如果你不懂網絡基礎的 IP 相關參數,包括路由設定以及領域名系統 (DNS) 的話,肯定不知道怎么進行聯機測試的。 所以啰,此時你就會被罵說:『怎么都不懂還想要管理我們家網絡』...那時不是很糗嗎?所以要學好一些嘛! 這部份就很復雜了,包括 TCP/IP, Network IP, Netmask IP, Broadcast IP, Gateway, DNS IP 等等,都需要理解喔!
了解了這些原理之后,你才能夠進行除錯 (debug) 的工作,否則,錯誤一出,你可能就會被罵的臭頭的! 最常見的錯誤中,舉例來說,如果你的主機明明就可以使用 ping 這個指令去接觸遠方的主機 (ping IP),但是就是無法使用 ping hostname 去接觸遠方的主機,請問,這個原因是什么呢? 了解網絡基礎的朋友一看就知道幾乎是 DNS 出問題了,不曉得的朋友就是想破頭也得不到答案。既然知道出問題的地方,就能夠針對該問題去處理嘛!
網絡基礎會影響到你的網絡設定是否正確,這真的很重要吶,因為,如果你的網絡不通,那么即使服務器架設成功了, 別人可以看的到嗎?所以說,要架站,真的得對網絡基礎的部分下一些功夫才行的。關于網絡基礎這部份我們在基礎篇并沒有談過, 所以我們會在下一章網絡基礎時再詳加說明喔!
服務器本身的安裝規劃與架站目的的搭配
如同圖 1.2-2 所示,Server 端是在那五部計算機之中,而且 Server 必須要提供針對不同賬號給予網絡驅動器機, 我們這邊會提供網芳 (SAMBA) 這個服務,因為他可以在 Linux/Windows 之間通用之故。 且由于需要提供賬號給使用者,以及想到未來的磁盤擴充情況,因此我們想要將 /home 獨立出來,且使用 LVM 這個管理模式, 并搭配 Quota 機制來控制每個賬號的磁盤使用量。
所以說, 你得知道 Linux 目錄下的 FHS (Filesystem Hierarchy Standard) 的規范,否則分割槽給到錯誤的目錄,會造成無法開機!那為什么要將 /home 獨立放入一個分割槽? 那是因為 quota 僅支持 filesystem 而不支持單一目錄啊!好了,如果給你一部全新的主機,那你該如何安裝你的系統呢?
實作題-全新安裝:
請到昆山科大 (http://ftp.ksu.edu.tw/FTP/CentOS/), 義守大學 (http://ftp.isu.edu.tw/pub/Linux/CentOS/) 或國家高速網絡中心 (http://ftp.twaren.net/Linux/CentOS/ ) 下載最新的 Linux 映像檔來刻錄 (2011/07 可下載最新版為 CentOS 6.0),并且依據上述的需求安裝好你的 Linux 系統 (最重要的其實就是那個分割而已,其他的動作可以在安裝完成后再說)。
答:
由于 Linux 的安裝我們已經在基礎篇內的第四章介紹過了,這里我們不再使用圖形接口來說明, 僅使用文字說明來介紹你在每個項目應該處理的動作而已。此外,由讀者們的響應發現,學習者經常只有一部主機, 因此,這里我們建議你使用 Virtualbox (http://www.virtualbox.org/) 來仿真出一部實體主機,以安裝你的測試環境。并請注意, 這部主機將會使用在本書的各個章節測試中。
Virtualbox 的安裝與設定請自行參考其官網上面的 Documentation 介紹,這里不再贅言。只是需要注意的是, 若 (1)需要架設網站來上網,建議網絡使用橋接模式 (bridge) ,且網絡卡類型使用 Intel 的桌面計算機類型即可。 (2)由于我們未來會教導 NAT 服務器,因此最好有兩張網卡,一張使用 bridge 一張使用內網 (intnet) 較佳。 而 (3)磁盤配置建議使用 SATA 類型,且容量請給予 25GB 以上。 (4)內存至少該給予 512MB 以上,最好有 1GB 來測試。 其他的請參考官網文件,或者使用默認配置即可。當然啦,如果你有獨立的實體機器來安裝,那就更好了! 不需理會這一小段文字的說明喔。
默認配置如下:
分割表請依如下方式進行:
/ : 2GB
/boot: 200MB
/usr : 4GB
/var : 2GB
/tmp : 1GB
swap : 1GB
/home: 5GB,并且使用 LVM 模式建置
其他容量請保留,未來再來進行額外練習!
軟件挑選時,請選擇『 basic server 』項目即可;
信息安全部分,防火墻選擇啟動,SELinux 選擇強制 (Enforce);
假設 IP 分享器有自動分配 IP 的功能,所以網絡參數先選擇 DHCP 即可,未來再自己修改。
實際流程大致如下 (鳥哥以 CentOS 6.0 為例說明)
1.由于我們使用光驅開機來安裝系統,因此得先進入 BIOS ,選擇光驅開機,并且將 CentOS 6.x 的 DVD 放入光驅中;
2.在啟動安裝的畫面中,選擇『Install or upgrade an existing system』來安裝新系統;
出現『 Disc Found 』字樣,此時建議可以選擇『 Skip 』即可略過;
3.在歡迎畫面以鼠標點選『 Next 』;
4.語系數據可以選擇『Chinese(Traditional)(中文(正體))』;
5.鍵盤格式保留『美式英文』即可;
6.安裝包含的裝置類型,直接選擇默認的『基本儲存裝置』即可;
7.因為我們是全新的硬盤,因此會出現一個找不到分割表的錯誤, 此時選擇『重新初始化』即可;
8.進入網絡主機名的設定,先保留『localhost.localdomain』即可。 同畫面中還有一個『配置網絡』的選項,我們先不要動他!等未來談到網絡設定再來處理即可;
9.進入時區選擇,請選擇『亞洲/臺北』即可;
10.出現 root 密碼制作,這里我們先設定為『 centos 』吧! 這個密碼太簡單,系統會出現警告,你選擇『照樣使用』即可。你也可以自行設定其他密碼;
10.出現哪一類型安裝的模式,因為我們有自己的分割考慮,所以,請選擇 『建立自定義分割格式』來處理喔!
11.在出現分割畫面中,先 點選『sda』項目,然后點選『建立』的按鈕,在出現的窗口中, 再點選『標準分割區』項目,然后點『建立』。 在最后的窗口中填寫掛載點、容量等信息后,最終按下『確定』即可。最終畫面有點像這樣:
TU
依據前面的分割規劃,持續進行上述的動作,將所有的分割都處理完畢, 除了 /home 之外。
由于 /home 想要使用 LVM 的方式來建立文件系統,因此點選『建立』后,選擇『LVM 實體卷冊』項目,按下建立,在出現的分割窗口中容量填寫 5GB,示意圖有點像這樣:
TU
接下來回到原本的分割畫面后,按下『建立』并選擇『LVM 卷冊群組』項目, 在出現的窗口中,卷冊組名填寫『server』,并且在右下方的邏輯卷冊部分按下『新增』, 又會額外出現一個窗口, 此時就填入 /home 的相關參數啦!注意,邏輯卷冊我們這里設定為 myhome 喔! 畫面有點像底下這樣:
TU
回到原本的分割畫面,最終的顯示有點像底下這樣,然后請按下『下一步』繼續。 但由于新建分割需要格式化,所以又會出現一個警告窗口!沒問題的,選擇『格式化』以及『將變更寫至磁盤』吧!
TU
16.出現啟動加載程序作業,都使用默認值即可,請按『下一步』;
17.出現安裝類型,因為我們主機的角色為服務器,因此選擇『Basic Server』項目! 其他項目保留默認,然后按下『下一步』就開始進行安裝程序啰!
17.經過一段時間的等待,出現重新啟動后,你就重新啟動吧!喔!要記得將 DVD 拿出來喔!(怪異的是,鳥哥第一次安裝后, 竟然發現電源管理有問題,得在 kernel 處增加 noapic 才能順利開機呢!)
18.裝好并重新啟動后,就會進入 runlevel 3 的純文本界面!因為是服務器嘛!
服務器本身的基本操作系統操作
既然我們這部主機得要提供 不同賬號來使用他們自己的網絡驅動器,因此還需要建立賬號啊, 使用磁盤配額 (quota) 等等的。 那么你會不會建立賬號呢?你會不會建置共享目錄呢?你能不能處理每個賬號的 Quota 配額呢?如果 /home 的容量不足了, 你會不會放大 /home 的容量呢?有沒有辦法將系統的磁盤使用情況定期的發送郵件給管理員呢?這些都是基本的維護行為喔! 我們底下就以幾個實際例子來練習看看你的基礎能力吧!
例題-大量建置賬號:
假設我的五個朋友賬號分別是 vbirduser{1,2,3,4,5},且這五個朋友未來想要共享一個目錄, 因此應該要加入同一個群組,假設這個群組為 vbirdgroup,且這五個賬號的密碼均為 password 。那該如何建置這五個賬號?
答:
你可以寫一支腳本程序來進行上述的工作喔!
[root@localhost ~]# mkdir bin [root@localhost ~]# cd /root/bin [root@localhost bin]# vim useradd.sh #!/bin/bash groupadd vbirdgroup for username in vbirduser1 vbirduser2 vbirduser3 vbirduser4 vbirduser5 douseradd -G vbirdgroup $usernameecho "password" | passwd --stdin $username done [root@localhost bin]# sh useradd.sh [root@localhost bin]# id vbirduser1 uid=501(vbirduser1) gid=502(vbirduser1) groups=502(vbirduser1),501(vbirdgroup) context=root:system_r:unconfined_t:SystemLow-SystemHigh
最后利用 id 這個指令來查詢看看,是否群組的支持是對的啊!
例題-共享目錄的權限:
這五個朋友的共享目錄建置于 /home/vbirdgroup 這個目錄,這個目錄只能給這五個人使用,且每個人均可于該目錄內進行任何動作! 若有其他人則無法使用 (沒有權限),那該如何建置這個目錄的權限呢?
答:
考慮到共享目錄, 因此目錄需要有 SGID 的權限才行!否則個別群組數據會讓這五個人彼此間無法修改對方的數據的。因此需要這樣做:
[root@localhost ~]# mkdir /home/vbirdgroup [root@localhost ~]# chgrp vbirdgroup /home/vbirdgroup [root@localhost ~]# chmod 2770 /home/vbirdgroup [root@localhost ~]# ll -d /home/vbirdgroup drwxrws---. 2 root vbirdgroup 4096 2011-07-14 14:49 /home/vbirdgroup/ # 上面特殊字體的部分就是你需要注意的部分啰!特別注意那個權限的 s 功能喔!
例題-Quota 實作:
假設這五個用戶均需要進行 磁盤配額限制,每個用戶的配額為 2GB (hard) 以及 1.8GB (soft),該如何處理?
答:
這一題實作比較難,因為必須要包括文件系統的支持、quota 數據文件建置、quota 啟動、建立用戶 quota 信息等過程。 整個過程在基礎篇有講過了,這里很快速的帶領大家進行一次吧!
# 1. 啟動 filesystem 的 Quota 支持 [root@localhost ~]# vim /etc/fstab UUID=01acf085-69e5-4474-bbc6-dc366646b5c8 / ext4 defaults 1 1 UUID=eb5986d8-2179-4952-bffd-eba31fb063ed /boot ext4 defaults 1 2 /dev/mapper/server-myhome /home ext4 defaults,usrquota,grpquota 1 2 UUID=605e815f-2740-4c0e-9ad9-14e069417226 /tmp ext4 defaults 1 2 ....(底下省略).... # 因為是要處理用戶的磁盤,所以找到的是 /home 這個目錄來處理的啊! # 另外,CentOS 6.x 以后,默認使用 UUID 的磁盤代號而非使用文件名。 # 不過,你還是能使用類似 /dev/sda1 之類的檔名啦! [root@localhost ~]# umount /home; mount -a [root@localhost ~]# mount | grep home /dev/mapper/server-myhome on /home type ext4 (rw,usrquota,grpquota) # 做完使用 mount 去檢查一下 /home 所在的 filesystem 有沒有上述的字眼!# 2. 制作 Quota 數據文件,并啟動 Quota 支持 [root@localhost ~]# quotacheck -avug quotacheck: Scanning /dev/mapper/server-myhome [/home] done ....(底下省略).... # 會出現一些錯誤的警告信息,但那是正常的!出現上述的字樣就對了! [root@localhost ~]# quotaon -avug /dev/mapper/server-myhome [/home]: group quotas turned on /dev/mapper/server-myhome [/home]: user quotas turned on# 3. 制作 Quota 數據給用戶 [root@localhost ~]# edquota -u vbirduser1 Disk quotas for user vbirduser1 (uid 500):Filesystem blocks soft hard inodes soft hard/dev/mapper/server-myhome 20 1800000 2000000 5 0 0 # 因為 Quota 的單位是 KB ,所以這里要補上好多 0 啊!看的眼睛都花了![root@localhost ~]# edquota -p vbirduser1 vbirduser2 # 持續作幾次,將 vbirduser{3,4,5} 通通補上去![root@localhost ~]# repquota -au *** Report for user quotas on device /dev/mapper/server-myhome Block grace time: 7days; Inode grace time: 7daysBlock limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------------- root -- 24 0 0 3 0 0 vbirduser1 -- 20 1800000 2000000 5 0 0 vbirduser2 -- 20 1800000 2000000 5 0 0 vbirduser3 -- 20 1800000 2000000 5 0 0 vbirduser4 -- 20 1800000 2000000 5 0 0 vbirduser5 -- 20 1800000 2000000 5 0 0 # 看到沒?上述的結果就是有發現到設定的 Quota 值啰!整個流程就是這樣!
例題-文件系統的放大 (LVM):
純粹假設的,我們的 /home 不夠用了,你想要將 /home 放大到 7GB 可不可行啊?
答:
因為當初就擔心這個問題, 所以 /home 已經是 LVM 的方式來管理了。此時我們要來瞧瞧 VG 夠不夠用,如果夠用的話, 那就可以繼續進行。如果不夠用呢?我們就得要從 PV 著手啰!整個流程可以是這樣來觀察的。
# 1. 先看看 VG 的量夠不夠用: [root@localhost ~]# vgdisplay--- Volume group ---VG Name serverSystem IDFormat lvm2 ....(中間省略)....VG Size 4.88 GiB <==只有區區 5G左右PE Size 4.00 MiBTotal PE 1249Alloc PE / Size 1249 / 4.88 GiBFree PE / Size 0 / 0 <==完全沒有剩余的容量了!VG UUID SvAEou-2quf-Z1Tr-Wsdz-2UY8-Cmfm-Ni0Oaf # 真慘!已經沒有多余的 VG 容量可以使用了!因此,我們得要增加 PV 才行。# 2. 開始制作出所需要的 partition 吧!作為 PV 用的! [root@localhost ~]# fdisk /dev/sda <==詳細流程我不寫了!自己瞧Command (m for help): pDevice Boot Start End Blocks Id System ....(中間省略).... /dev/sda8 1812 1939 1024000 83 Linux <==最后一個磁柱Command (m for help): n First cylinder (1173-3264, default 1173): 1940 <==上面查到的號碼加 1 Last cylinder, +cylinders or +size{K,M,G} (1940-3264, default 3264): +2GCommand (m for help): t Partition number (1-9): 9 Hex code (type L to list codes): 8eCommand (m for help): pDevice Boot Start End Blocks Id System /dev/sda9 1940 2201 2104515 8e Linux LVM <==得到 /dev/sda9Command (m for help): w[root@localhost ~]# partprobe <==在虛擬機上面得要 reboot 才行!# 3. 將 /dev/sda9 加入 PV,并將該 PV 加入 server 這個 VG 吧 [root@localhost ~]# pvcreate /dev/sda9 [root@localhost ~]# vgextend server /dev/sda9 [root@localhost ~]# vgdisplay ....(前面省略)....VG Size 6.88 GiB <==這個 VG 最大就是 6.88G 啦 ....(中間省略)....Free PE / Size 513 / 2.00 GiB <==有多出 2GB 的容量可用了!# 4. 準備加大 /home,開始前,還是先觀察一下才增加 LV 容量較好! [root@localhost ~]# lvdisplay--- Logical volume ---LV Name /dev/server/myhome <==這是 LV 的名字!VG Name server ....(中間省略)....LV Size 4.88 GiB <==只有 5GB 左右,需要增加 2GB 啰 ....(底下省略).... # 看起來,是需要增加容量啰!我們使用 lvresize 來擴大容量吧![root@localhost ~]# lvresize -L 6.88G /dev/server/myhomeRounding up size to full physical extent 6.88 GiBExtending logical volume myhome to 6.88 GiB <==處理完畢啰!Logical volume myhome successfully resized # 看來確實是擴大到 6.88GB 啰!開始處理文件系統吧!# 5. 擴大文件系統 [root@localhost ~]# resize2fs /dev/server/myhome resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/server/myhome is mounted on /home; on-line resizing required old desc_blocks = 1, new_desc_blocks = 1 Performing an on-line resize of /dev/server/myhome to 1804288 (4k) blocks. The filesystem on /dev/server/myhome is now 1804288 blocks long.[root@localhost ~]# df -h 文件系統 Size Used Avail Use% 掛載點 /dev/mapper/server-myhome6.8G 140M 6.4G 3% /home ....(其他省略).... # 可以看到文件系統確實有放大到 6.8G 喔!這樣了解了嗎?
做完上面的實作之后,現在你曉得為什么在基礎篇的時候,我們一直強調一些有的沒有的了吧?因為那些東西在這里都用的上! 如果本章這些題目你都不會,甚至連為什么要作這些東西都不懂的話,那得趕緊回去閱讀基礎篇,不要再念下去了! 會非常非常辛苦的呦!
轉自: http://vbird.dic.ksu.edu.tw/linux_server/0105beforeserver_2.php
網絡服務器成功聯機的分析
底下我們就整個服務器的簡易架設流程當中來分析一下,以了解為什么了解操作系統的基礎對于網站維護是相當重要的呢?首先,到底我們是如何聯機到服務器的? 聯機到服務器又取得啥咚咚?我們先以底下這張圖示來作個簡單的說明好了:
tu
先來理解一下,到底我們聯機到服務器想要得到什么?舉例來說,你聯機到 Youtube 想要看影片,所以對方就提供影片串流數據給你; 你連到 Yahoo 想要看新聞,所以對方就提供新聞的文本文件給你;你聯機到無名小站想要看美女,對方就傳圖檔給你;你聯機 Facebook 想要去種田,對方就參考你之前留下來的記錄,從數據庫里面將你的記錄拿出來傳給你。看到沒有,你聯機到服務器,重點在取得對方的數據, 而一般數據的存在就是使用檔案啰!那你有沒有權限取得?最終與該文件系統的設定有關啦!
上圖顯示的是: 首先,客戶端到服務器的網絡要能夠通,等到客戶端到達服務器后,會先由服務器的防火墻判斷該聯機能否放行, 等到放行之后才能使用到服務器軟件的功能。 而該功能又得要通過 SELinux 這個細部權限設定的項目后,才能夠讀取到文件系統。 但能不能讀到文件系統呢? 這又跟文件系統的權限 (rwx) 有關啦!上述的每個部分都要能夠成功,否則就無法順利讀取數據啰。
所以,根據上面的流程我們大概可以將整個聯機分為幾個部分, 包括:網絡、服務器本身、內部防火墻軟件設定、各項服務配置文件、細部權限的 SELinux 以及最終最重要的檔案權限。底下就分幾個細項來談談啰。
A 網絡:了解網絡基礎知識與所需服務之通訊協議
既然要架設服務器,首先當然得要了解一下因特網。因為不管是哪種操作系統,若想要與因特網聯機,這個網絡基礎就得了解。 舉例來說,『網域』是經常會談到的概念,當你發現一個設定為 192.168.1.0/255.255.255.0 時,曉得那是什么鬼東西嗎? 如果不知道的話,呵呵!絕對無法設定好網站的啦!另外,為何你需要服務器?當然是想要達成某項網絡服務。 舉例來說,傳輸檔案可以用 FTP,那 WWW 可以傳遞檔案嗎?網芳可以傳遞嗎?各有何用處?哪個比較方便? 對于客戶或老板來說,我們所設定的服務能否滿足他們的需求等等,這都需要了解,否則你將一頭霧水啊! 因此這部份你就得要了解:
基本的網絡基礎知識:包括以太網絡硬件與協議、TCP/IP、網絡聯機所需參數等;
各網絡服務所對應的通訊協議原理,以及各通訊協議所需對應的軟件。
B 服務器本身:了解架網絡服務器之目的以配合主機的安裝規劃
想要架設服務器嗎?那...架什么服務器?這個服務器要不要對 Internet 開放?這個服務要不要針對客戶提供相關賬號? 要不要針對不同的客戶賬號進行例如磁盤容量、可活動空間與可用系統資源進行限制?如果要進行各項資源的限制, 那服務器操作系統應該要如何安裝與設定?問題很多吧!所以,先了解你要的服務器服務目的之后,后續的規劃才能陸續出爐。 不過,如果架站只是為了『練功』而已,呵呵!那就不需要考慮太多了~
C 服務器本身:了解操作系統的基本操作
網絡服務軟件是 需要建置在操作系統上面的,所以基本的操作系統操作就得要了解才行啊!包括軟件如何安裝與移除? 如何讓系統進行例行的工作管理?如何依據服務器服務之目的規劃文件系統?如何讓文件系統具有未來擴充性 (LVM 之類)? 系統如何管理各項服務之啟動?系統的開機流程為何?系統出錯時,該如何進行快速復原等等,這都需要了解的呢!
D 內部防火墻設定:管理系統的可分享資源
一部主機可以擁有多種服務器軟件的運作,而很多 Linux distributions 出廠的默認值就已經開放很多服務給 Internet 使用了,不過這些服務可能并不是你想要開放的呢。我們在了解網絡基礎與所需服務的目的之后, 接下來就是透過防火墻來規范可以使用本服務器服務的用戶,以讓系統在使用上擁有較佳的控管情況。 此外,不管你的防火墻系統設定的再怎么嚴格,只要是你要開放的服務, 那防火墻對于該服務就沒有保護的效果。因此,那個重要的在線更新軟件機制就一定要定期進行!否則你的系統將會非常非常的不安全!
E 服務器軟件設定:學習設定技巧與開機是否自動執行
剛剛第一點就提到我們得要知道每種服務所能達成的功能,如此一來才能夠架設你所需要的服務的網站。 那你所需要的服務是由哪個軟件達成的?同一個服務可否有不同的軟件?每種軟件可以達成的目的是否相同? 依據所需要的功能如何設定你的服務器軟件?架設過程中如果出現錯誤,你該如何觀察與除錯? 可否定期的分析服務器相關的登錄信息,以方便了解該服務器的使用情況與錯誤發生的原因? 能否通知多個用戶進行聯機測試,以取得較佳的服務器設定值?所以這里你可能就得要知道:
軟件如何安裝、如何查詢相關配置文件所在位置;
服務器軟件如何設定?
服務器軟件如何啟動?如何設定自動開機啟動?如何觀察啟動的埠口?
服務器軟件激活失敗如何除錯?如何觀察登錄檔?如何透過登錄檔進行除錯?
透過客戶端進行聯機測試,如果失敗該如何處理?聯機失敗的原因是服務器還是防火墻?
服務器的設定修改是否有建立日志?登錄檔是否有定期分析?
服務器所提供或分享的數據有無定期備份?如何定期自動備份或異地備份?
F 細部權限設定:包括 SELinux 與檔案權限
等到你的服務器全部設定妥當,最后你所提供的檔案數據權限卻是給了『 000 』的權限分數, 那鳥哥很肯定的說,大家都無法讀到你所提供的數據啊...!此外,新的 distributions 都建議你要啟動 SELinux ,那是什么咚咚? 如果你的數據放置于非正規的目錄,那該如何處理 SELinux 的問題?又如何讓檔案具有保密性或共享性 (檔案權限概念與 ACL 等) 等等,這也都是需要厘清的觀念喔!
上述的服務器架設流程中,其實除了第 5 點之外,其他步驟在各服務器設定都需要了解啊!而且都是一樣的東西說! 因此,這些基礎如果學會了,最終,你只要知道第 5 點里面那個軟件的基礎設定,你的服務器一下子就可以設定完成啦! 這樣說,你是否開始覺得基礎學習很重要啊! ^_^
一個常見的服務器設定案例分析
上面講完后或許你還是不很清楚到底這些技能如何串起來?鳥哥這里提供一個簡單的案例來分析一下好了, 這樣你應該就比較容易清楚的知道為何需要學習這些咚咚。
A 網絡環境:假設你的環境里面 (不管是家里還是宿舍) 共有五部計算機,這五部計算機需要串接在一起,且都可以對外聯機;
B 對外網絡:你的環境只有一個對外的聯機方式,這里假設是臺灣較流行的 ADSL 或 10M 的光纖這種透過電話線撥接的類型;
C 額外服務:你想要讓這五部計算機都可以上網,而且其中還有一部可以做為網絡驅動器機,提供同學或家人作為數據備份與分享之用;
D 服務器管理:由于你可能需要進行遠程管理,因此你這部服務器得要開放聯機機制,以讓遠程計算機可以聯機到這部主機來進行維護;
E 防火墻管理:因為擔心這部做為檔案分享服務器的系統被攻擊,因此你需要針對 IP 來源進行登入權力的控制;
F 賬號管理:另外,由于同學的數據有隱密與共享之分,因此你還得要提供每個同學個別的賬號, 且每個賬號都有磁盤容量的使用限制;
后端分析:最后,由于擔心系統出問題所以你得要讓系統自動定期分析磁盤使用量、登錄文件參數信息等等。
在上述的環境中,你要考慮的東西有哪些呢?依據本小節一開始談到的六個步驟來分析的話,你可能需要底下這些咚咚喔!
了解網絡基礎
硬件規劃
我們想要將五部計算機串接在一塊,但是卻又只有一個可以對外的聯機,此時就得要購買集線器 (hub) 或者是交換器 (switch) 來串接所有的計算機了。但是這兩者有何不同?為何 switch 比較貴?我們知道網絡線被稱為 RJ-45 的網絡線, 但網絡線材竟然有等級之分,這個等級要怎么分辨?不同等級的線材速度有沒有差異?等到這些硬件基礎了解之后, 你才能夠針對你的環境來進行聯機的設計。這部份我們等到下一章再來介紹。
聯機規劃
由于只有一條對外聯機而已,因此通常我們就建議你可以用如下的方式來串接你的網絡:
TU
透過 IP 分享器,我們的五部計算機就都能夠上網了。此時你得要注意,能否上網與 Internet 有關, Internet 就是那有名的 TCP/IP 通訊協議,而想要了解網絡就得要知道啥是 OSI 七層協定。我們也知道能連上 Internet 與所謂的 IP 有關,那么我們內部這五部計算機所取得的 IP 能不能拿來架站?也就是說, IP 有沒有不同種類? 如果 IP 分享器突然掛了,那你的這五部計算機能不能聯機玩魔獸?這就考慮你的網絡參數設定問題了!
網絡基礎
如果你的同學或家人跑來跟你說,網絡不通哩!你直覺會是什么?硬件問題?軟件問題?還是啥莫名其妙的問題? 如果你不懂網絡基礎的 IP 相關參數,包括路由設定以及領域名系統 (DNS) 的話,肯定不知道怎么進行聯機測試的。 所以啰,此時你就會被罵說:『怎么都不懂還想要管理我們家網絡』...那時不是很糗嗎?所以要學好一些嘛! 這部份就很復雜了,包括 TCP/IP, Network IP, Netmask IP, Broadcast IP, Gateway, DNS IP 等等,都需要理解喔!
了解了這些原理之后,你才能夠進行除錯 (debug) 的工作,否則,錯誤一出,你可能就會被罵的臭頭的! 最常見的錯誤中,舉例來說,如果你的主機明明就可以使用 ping 這個指令去接觸遠方的主機 (ping IP),但是就是無法使用 ping hostname 去接觸遠方的主機,請問,這個原因是什么呢? 了解網絡基礎的朋友一看就知道幾乎是 DNS 出問題了,不曉得的朋友就是想破頭也得不到答案。既然知道出問題的地方,就能夠針對該問題去處理嘛!
網絡基礎會影響到你的網絡設定是否正確,這真的很重要吶,因為,如果你的網絡不通,那么即使服務器架設成功了, 別人可以看的到嗎?所以說,要架站,真的得對網絡基礎的部分下一些功夫才行的。關于網絡基礎這部份我們在基礎篇并沒有談過, 所以我們會在下一章網絡基礎時再詳加說明喔!
服務器本身的安裝規劃與架站目的的搭配
如同圖 1.2-2 所示,Server 端是在那五部計算機之中,而且 Server 必須要提供針對不同賬號給予網絡驅動器機, 我們這邊會提供網芳 (SAMBA) 這個服務,因為他可以在 Linux/Windows 之間通用之故。 且由于需要提供賬號給使用者,以及想到未來的磁盤擴充情況,因此我們想要將 /home 獨立出來,且使用 LVM 這個管理模式, 并搭配 Quota 機制來控制每個賬號的磁盤使用量。
所以說, 你得知道 Linux 目錄下的 FHS (Filesystem Hierarchy Standard) 的規范,否則分割槽給到錯誤的目錄,會造成無法開機!那為什么要將 /home 獨立放入一個分割槽? 那是因為 quota 僅支持 filesystem 而不支持單一目錄啊!好了,如果給你一部全新的主機,那你該如何安裝你的系統呢?
實作題-全新安裝:
請到昆山科大 (http://ftp.ksu.edu.tw/FTP/CentOS/), 義守大學 (http://ftp.isu.edu.tw/pub/Linux/CentOS/) 或國家高速網絡中心 (http://ftp.twaren.net/Linux/CentOS/ ) 下載最新的 Linux 映像檔來刻錄 (2011/07 可下載最新版為 CentOS 6.0),并且依據上述的需求安裝好你的 Linux 系統 (最重要的其實就是那個分割而已,其他的動作可以在安裝完成后再說)。
答:
由于 Linux 的安裝我們已經在基礎篇內的第四章介紹過了,這里我們不再使用圖形接口來說明, 僅使用文字說明來介紹你在每個項目應該處理的動作而已。此外,由讀者們的響應發現,學習者經常只有一部主機, 因此,這里我們建議你使用 Virtualbox (http://www.virtualbox.org/) 來仿真出一部實體主機,以安裝你的測試環境。并請注意, 這部主機將會使用在本書的各個章節測試中。
Virtualbox 的安裝與設定請自行參考其官網上面的 Documentation 介紹,這里不再贅言。只是需要注意的是, 若 (1)需要架設網站來上網,建議網絡使用橋接模式 (bridge) ,且網絡卡類型使用 Intel 的桌面計算機類型即可。 (2)由于我們未來會教導 NAT 服務器,因此最好有兩張網卡,一張使用 bridge 一張使用內網 (intnet) 較佳。 而 (3)磁盤配置建議使用 SATA 類型,且容量請給予 25GB 以上。 (4)內存至少該給予 512MB 以上,最好有 1GB 來測試。 其他的請參考官網文件,或者使用默認配置即可。當然啦,如果你有獨立的實體機器來安裝,那就更好了! 不需理會這一小段文字的說明喔。
默認配置如下:
分割表請依如下方式進行:
/ : 2GB
/boot: 200MB
/usr : 4GB
/var : 2GB
/tmp : 1GB
swap : 1GB
/home: 5GB,并且使用 LVM 模式建置
其他容量請保留,未來再來進行額外練習!
軟件挑選時,請選擇『 basic server 』項目即可;
信息安全部分,防火墻選擇啟動,SELinux 選擇強制 (Enforce);
假設 IP 分享器有自動分配 IP 的功能,所以網絡參數先選擇 DHCP 即可,未來再自己修改。
實際流程大致如下 (鳥哥以 CentOS 6.0 為例說明)
1.由于我們使用光驅開機來安裝系統,因此得先進入 BIOS ,選擇光驅開機,并且將 CentOS 6.x 的 DVD 放入光驅中;
2.在啟動安裝的畫面中,選擇『Install or upgrade an existing system』來安裝新系統;
出現『 Disc Found 』字樣,此時建議可以選擇『 Skip 』即可略過;
3.在歡迎畫面以鼠標點選『 Next 』;
4.語系數據可以選擇『Chinese(Traditional)(中文(正體))』;
5.鍵盤格式保留『美式英文』即可;
6.安裝包含的裝置類型,直接選擇默認的『基本儲存裝置』即可;
7.因為我們是全新的硬盤,因此會出現一個找不到分割表的錯誤, 此時選擇『重新初始化』即可;
8.進入網絡主機名的設定,先保留『localhost.localdomain』即可。 同畫面中還有一個『配置網絡』的選項,我們先不要動他!等未來談到網絡設定再來處理即可;
9.進入時區選擇,請選擇『亞洲/臺北』即可;
10.出現 root 密碼制作,這里我們先設定為『 centos 』吧! 這個密碼太簡單,系統會出現警告,你選擇『照樣使用』即可。你也可以自行設定其他密碼;
10.出現哪一類型安裝的模式,因為我們有自己的分割考慮,所以,請選擇 『建立自定義分割格式』來處理喔!
11.在出現分割畫面中,先 點選『sda』項目,然后點選『建立』的按鈕,在出現的窗口中, 再點選『標準分割區』項目,然后點『建立』。 在最后的窗口中填寫掛載點、容量等信息后,最終按下『確定』即可。最終畫面有點像這樣:
TU
依據前面的分割規劃,持續進行上述的動作,將所有的分割都處理完畢, 除了 /home 之外。
由于 /home 想要使用 LVM 的方式來建立文件系統,因此點選『建立』后,選擇『LVM 實體卷冊』項目,按下建立,在出現的分割窗口中容量填寫 5GB,示意圖有點像這樣:
TU
接下來回到原本的分割畫面后,按下『建立』并選擇『LVM 卷冊群組』項目, 在出現的窗口中,卷冊組名填寫『server』,并且在右下方的邏輯卷冊部分按下『新增』, 又會額外出現一個窗口, 此時就填入 /home 的相關參數啦!注意,邏輯卷冊我們這里設定為 myhome 喔! 畫面有點像底下這樣:
TU
回到原本的分割畫面,最終的顯示有點像底下這樣,然后請按下『下一步』繼續。 但由于新建分割需要格式化,所以又會出現一個警告窗口!沒問題的,選擇『格式化』以及『將變更寫至磁盤』吧!
TU
16.出現啟動加載程序作業,都使用默認值即可,請按『下一步』;
17.出現安裝類型,因為我們主機的角色為服務器,因此選擇『Basic Server』項目! 其他項目保留默認,然后按下『下一步』就開始進行安裝程序啰!
17.經過一段時間的等待,出現重新啟動后,你就重新啟動吧!喔!要記得將 DVD 拿出來喔!(怪異的是,鳥哥第一次安裝后, 竟然發現電源管理有問題,得在 kernel 處增加 noapic 才能順利開機呢!)
18.裝好并重新啟動后,就會進入 runlevel 3 的純文本界面!因為是服務器嘛!
服務器本身的基本操作系統操作
既然我們這部主機得要提供 不同賬號來使用他們自己的網絡驅動器,因此還需要建立賬號啊, 使用磁盤配額 (quota) 等等的。 那么你會不會建立賬號呢?你會不會建置共享目錄呢?你能不能處理每個賬號的 Quota 配額呢?如果 /home 的容量不足了, 你會不會放大 /home 的容量呢?有沒有辦法將系統的磁盤使用情況定期的發送郵件給管理員呢?這些都是基本的維護行為喔! 我們底下就以幾個實際例子來練習看看你的基礎能力吧!
例題-大量建置賬號:
假設我的五個朋友賬號分別是 vbirduser{1,2,3,4,5},且這五個朋友未來想要共享一個目錄, 因此應該要加入同一個群組,假設這個群組為 vbirdgroup,且這五個賬號的密碼均為 password 。那該如何建置這五個賬號?
答:
你可以寫一支腳本程序來進行上述的工作喔!
[root@localhost ~]# mkdir bin [root@localhost ~]# cd /root/bin [root@localhost bin]# vim useradd.sh #!/bin/bash groupadd vbirdgroup for username in vbirduser1 vbirduser2 vbirduser3 vbirduser4 vbirduser5 douseradd -G vbirdgroup $usernameecho "password" | passwd --stdin $username done [root@localhost bin]# sh useradd.sh [root@localhost bin]# id vbirduser1 uid=501(vbirduser1) gid=502(vbirduser1) groups=502(vbirduser1),501(vbirdgroup) context=root:system_r:unconfined_t:SystemLow-SystemHigh
最后利用 id 這個指令來查詢看看,是否群組的支持是對的啊!
例題-共享目錄的權限:
這五個朋友的共享目錄建置于 /home/vbirdgroup 這個目錄,這個目錄只能給這五個人使用,且每個人均可于該目錄內進行任何動作! 若有其他人則無法使用 (沒有權限),那該如何建置這個目錄的權限呢?
答:
考慮到共享目錄, 因此目錄需要有 SGID 的權限才行!否則個別群組數據會讓這五個人彼此間無法修改對方的數據的。因此需要這樣做:
[root@localhost ~]# mkdir /home/vbirdgroup [root@localhost ~]# chgrp vbirdgroup /home/vbirdgroup [root@localhost ~]# chmod 2770 /home/vbirdgroup [root@localhost ~]# ll -d /home/vbirdgroup drwxrws---. 2 root vbirdgroup 4096 2011-07-14 14:49 /home/vbirdgroup/ # 上面特殊字體的部分就是你需要注意的部分啰!特別注意那個權限的 s 功能喔!
例題-Quota 實作:
假設這五個用戶均需要進行 磁盤配額限制,每個用戶的配額為 2GB (hard) 以及 1.8GB (soft),該如何處理?
答:
這一題實作比較難,因為必須要包括文件系統的支持、quota 數據文件建置、quota 啟動、建立用戶 quota 信息等過程。 整個過程在基礎篇有講過了,這里很快速的帶領大家進行一次吧!
# 1. 啟動 filesystem 的 Quota 支持 [root@localhost ~]# vim /etc/fstab UUID=01acf085-69e5-4474-bbc6-dc366646b5c8 / ext4 defaults 1 1 UUID=eb5986d8-2179-4952-bffd-eba31fb063ed /boot ext4 defaults 1 2 /dev/mapper/server-myhome /home ext4 defaults,usrquota,grpquota 1 2 UUID=605e815f-2740-4c0e-9ad9-14e069417226 /tmp ext4 defaults 1 2 ....(底下省略).... # 因為是要處理用戶的磁盤,所以找到的是 /home 這個目錄來處理的啊! # 另外,CentOS 6.x 以后,默認使用 UUID 的磁盤代號而非使用文件名。 # 不過,你還是能使用類似 /dev/sda1 之類的檔名啦! [root@localhost ~]# umount /home; mount -a [root@localhost ~]# mount | grep home /dev/mapper/server-myhome on /home type ext4 (rw,usrquota,grpquota) # 做完使用 mount 去檢查一下 /home 所在的 filesystem 有沒有上述的字眼!# 2. 制作 Quota 數據文件,并啟動 Quota 支持 [root@localhost ~]# quotacheck -avug quotacheck: Scanning /dev/mapper/server-myhome [/home] done ....(底下省略).... # 會出現一些錯誤的警告信息,但那是正常的!出現上述的字樣就對了! [root@localhost ~]# quotaon -avug /dev/mapper/server-myhome [/home]: group quotas turned on /dev/mapper/server-myhome [/home]: user quotas turned on# 3. 制作 Quota 數據給用戶 [root@localhost ~]# edquota -u vbirduser1 Disk quotas for user vbirduser1 (uid 500):Filesystem blocks soft hard inodes soft hard/dev/mapper/server-myhome 20 1800000 2000000 5 0 0 # 因為 Quota 的單位是 KB ,所以這里要補上好多 0 啊!看的眼睛都花了![root@localhost ~]# edquota -p vbirduser1 vbirduser2 # 持續作幾次,將 vbirduser{3,4,5} 通通補上去![root@localhost ~]# repquota -au *** Report for user quotas on device /dev/mapper/server-myhome Block grace time: 7days; Inode grace time: 7daysBlock limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------------- root -- 24 0 0 3 0 0 vbirduser1 -- 20 1800000 2000000 5 0 0 vbirduser2 -- 20 1800000 2000000 5 0 0 vbirduser3 -- 20 1800000 2000000 5 0 0 vbirduser4 -- 20 1800000 2000000 5 0 0 vbirduser5 -- 20 1800000 2000000 5 0 0 # 看到沒?上述的結果就是有發現到設定的 Quota 值啰!整個流程就是這樣!
例題-文件系統的放大 (LVM):
純粹假設的,我們的 /home 不夠用了,你想要將 /home 放大到 7GB 可不可行啊?
答:
因為當初就擔心這個問題, 所以 /home 已經是 LVM 的方式來管理了。此時我們要來瞧瞧 VG 夠不夠用,如果夠用的話, 那就可以繼續進行。如果不夠用呢?我們就得要從 PV 著手啰!整個流程可以是這樣來觀察的。
# 1. 先看看 VG 的量夠不夠用: [root@localhost ~]# vgdisplay--- Volume group ---VG Name serverSystem IDFormat lvm2 ....(中間省略)....VG Size 4.88 GiB <==只有區區 5G左右PE Size 4.00 MiBTotal PE 1249Alloc PE / Size 1249 / 4.88 GiBFree PE / Size 0 / 0 <==完全沒有剩余的容量了!VG UUID SvAEou-2quf-Z1Tr-Wsdz-2UY8-Cmfm-Ni0Oaf # 真慘!已經沒有多余的 VG 容量可以使用了!因此,我們得要增加 PV 才行。# 2. 開始制作出所需要的 partition 吧!作為 PV 用的! [root@localhost ~]# fdisk /dev/sda <==詳細流程我不寫了!自己瞧Command (m for help): pDevice Boot Start End Blocks Id System ....(中間省略).... /dev/sda8 1812 1939 1024000 83 Linux <==最后一個磁柱Command (m for help): n First cylinder (1173-3264, default 1173): 1940 <==上面查到的號碼加 1 Last cylinder, +cylinders or +size{K,M,G} (1940-3264, default 3264): +2GCommand (m for help): t Partition number (1-9): 9 Hex code (type L to list codes): 8eCommand (m for help): pDevice Boot Start End Blocks Id System /dev/sda9 1940 2201 2104515 8e Linux LVM <==得到 /dev/sda9Command (m for help): w[root@localhost ~]# partprobe <==在虛擬機上面得要 reboot 才行!# 3. 將 /dev/sda9 加入 PV,并將該 PV 加入 server 這個 VG 吧 [root@localhost ~]# pvcreate /dev/sda9 [root@localhost ~]# vgextend server /dev/sda9 [root@localhost ~]# vgdisplay ....(前面省略)....VG Size 6.88 GiB <==這個 VG 最大就是 6.88G 啦 ....(中間省略)....Free PE / Size 513 / 2.00 GiB <==有多出 2GB 的容量可用了!# 4. 準備加大 /home,開始前,還是先觀察一下才增加 LV 容量較好! [root@localhost ~]# lvdisplay--- Logical volume ---LV Name /dev/server/myhome <==這是 LV 的名字!VG Name server ....(中間省略)....LV Size 4.88 GiB <==只有 5GB 左右,需要增加 2GB 啰 ....(底下省略).... # 看起來,是需要增加容量啰!我們使用 lvresize 來擴大容量吧![root@localhost ~]# lvresize -L 6.88G /dev/server/myhomeRounding up size to full physical extent 6.88 GiBExtending logical volume myhome to 6.88 GiB <==處理完畢啰!Logical volume myhome successfully resized # 看來確實是擴大到 6.88GB 啰!開始處理文件系統吧!# 5. 擴大文件系統 [root@localhost ~]# resize2fs /dev/server/myhome resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/server/myhome is mounted on /home; on-line resizing required old desc_blocks = 1, new_desc_blocks = 1 Performing an on-line resize of /dev/server/myhome to 1804288 (4k) blocks. The filesystem on /dev/server/myhome is now 1804288 blocks long.[root@localhost ~]# df -h 文件系統 Size Used Avail Use% 掛載點 /dev/mapper/server-myhome6.8G 140M 6.4G 3% /home ....(其他省略).... # 可以看到文件系統確實有放大到 6.8G 喔!這樣了解了嗎?
做完上面的實作之后,現在你曉得為什么在基礎篇的時候,我們一直強調一些有的沒有的了吧?因為那些東西在這里都用的上! 如果本章這些題目你都不會,甚至連為什么要作這些東西都不懂的話,那得趕緊回去閱讀基礎篇,不要再念下去了! 會非常非常辛苦的呦!
轉自: http://vbird.dic.ksu.edu.tw/linux_server/0105beforeserver_2.php
總結
以上是生活随笔為你收集整理的第一章 基本架设服务器流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转:有关Forth语言
- 下一篇: 模拟卷Leetcode【普通】729.