駭客小築's Archiver

star 發表於 2006-2-1 03:54 AM

[分享] FreeBSD虛擬伺服器 jail

以下簡介由 [url=http://www.newzilla.org/2004/11/15/jail_bsd_5/index.html]Jail in FreeBSD 5.3[/url] 轉載
-
什麼是 jail, 和 FreeBSD 有什麼關係?

Jail 是自 FreeBSD 4.0 起獨有的功能, 發展至今已 4 個年頭。和 chroot 有點像, 但又比 chroot 更強大。Jail 和 chroot 的相同的地方是, 皆會 將某個 process 及其 children 的根目錄 "/", 切換到某一個目錄下, 將 它們關起來。但 jail 可以關的就更多了, 除了可以在存取檔案系統方面做 限制, 在 process 這個層次也做了類似概念的隔離。TCP/IP stack 層次, 也有一定程度的限制。

Jail 的組成, 如同 chroot 般, 首先需要一個目錄, 再視用途, 把必要的 應用程式放進去。以往在建 chroot 環境的時候, 傾向於只把必要的東西放 進去。但在建 jail 的時候, 反而傾向把完整的系統放進 jail 裡。除了已 經裝好系統的目錄之外, jail 還需要有自己的 hostname, 以及自己的 IP。

運行中的 jail 亦是系統的一部份, 共享各種硬體資源, 如 CPU time, memory, disk space, network bandwidth 等等。一般將提供 jail 運行的 主系統稱之為 host。一個空的 jail (不包含 ports) 大約要佔用 150 MB 左右的磁碟空間。日後依 jail 利用方式的不同, 空間的使用也會有很大的 差異。而 CPU time, memory, network bandwidth 方面, 則視 jail 內提 供的服務, 以及執行的應用程式而定。故一個 host 能提供多少 jails, 乃 是依硬體規格及實際負載而定, 系統管理者需依情況評估及調整。

Jail 適合用來做什麼?

一個 jail 幾乎可以被視為一台獨立的 server。因此一般 server 能做的事, jail 幾乎都能做。例如 web server, mail server, shell server, database server... 都是可以 "養" 在 jail 裡面的。

Jail 仍不適合用來做什麼?

Jail 的概念是隔離, 而不是分割, 也不是模擬。某些系統資源, 像是 System V IPC (message queues, shared memory, semaphores) 目前也不 在目前 jail 能隔離的範圍內。又如在檔案系統層次, 雖然和主系統隔離了, 但所使用的磁碟空間, 卻是沒辦法強制限定只能用多少。在 TCP/IP 層次, jail 被限定只能有一個 IP, 連 lo0 127.0.0.1 都沒有。因此, 像是防火 牆, 路由器等等工作, jail 是無法勝任的。又如 BBS, PostgreSQL server 等等, 會使用到 System V shared memory, semaphores 的服務, 也得小心 調整。
---
相關資料:
[url=http://www.newzilla.org/2004/11/15/jail_bsd_5/index.html]Jail in FreeBSD 5.3[/url]
[url=http://blog.activehack.com/?p=31&page=2]FreeBSD Jail 研究完成[/url]
[url=http://free.cc.kmu.edu.tw/prj/jail/]虛擬伺服器 - FreeBSD jail 的應用[/url]
[url=http://memberwebs.com/nielsen/freebsd/jails/]FreeBSD Jail Software and Docs[/url]

頁: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.