FreeBSD

VMWare ESXi導入遊記(四)我家的網路架構

我家的網路架構


圖一:Before

原來是中華電信的ATU-R進來了之後,接在FreeBSD上。FreeBSD上面插了兩張網路卡,一張對外,一張對內。這台機器現在是負責NAT, www, mail以及其他各種服務。

區域網路內則是用了兩台Gigabit Switch跟兩台Wifi AP,把家裡所有的網路裝置接起來。

導入ESXi之後的網路架構


圖二:After

預計導入ESXi之後,要把原來FreeBSD負責的服務,分散給不同台VM。預定要裝的VM分別是:

  • pfSense:NAT、DHCP、VPN等等
  • FreeBSD:主要留做www, mysql等等,把NAT相關服務移到pfsense
  • FreeNAS:檔案伺服器,驗證完成之後,預定要移出來到實體機器
  • Windows:各式P2P服務,把檔案存到FreeNAS上
  • Gmail for your domain:不是VM,但是要把mail交給google託管。現在改叫Google Apps for Domain,還是有提供免費版就是了

專門做NAT的作業系統的選擇還蠻多的,像是m0n0wall, BrazilFW, IPCOP等等,我最後選pfsense的原因是功能多、介面好看之外,他剛好也是FreeBSD based…

參考資料:4大免費路由器軟體效能大揭密 – Network01.net

NAS OS的話,常見的好像也只有FreeNAS跟Openfiler,另外就是有點微妙的Windows Home Server。我選FreeNAS是看了這一篇之後,發現Openfiler似乎不能讀NTFS硬碟,所以還是選FreeBSD based的FreeNAS…

也就是,上面會有三台VM是FreeBSD耶~☆

題外話,我一邊畫架構圖,一篇在想,是什麼樣的笨蛋,會把家裡的網路搞得這麼複雜的…

現狀:導入ESXi到一半的架構


圖三:Reality

這是目前的現狀。跟圖一的改變是PS3改成走Wifi,然後網路線留給ESXi了。

各位可以看到,原來要取代FreeBSD的整組ESXi,目前放在圖片的最下方,上面跑的各種服務都要從原本的FreeBSD穿過才進得去。像DNS這種原先沒有的,或是SSH這種比較容易指定port的,這都還好處理。但是www就很複雜,要設vhost之後,用proxy pass到裡面的機器,簡直就是複雜啊~

大概是這樣:

<virtualhost 211.23.16.105>
    ServerName applepig.info
    ServerAlias www.applepig.info
    ProxyPass / http://192.168.0.101/
</virtualhost>

那至於pfsense碰到的問題,就等一下再說吧~

VMWare ESXi導入遊記(一)有關虛擬機器

前一陣子辦公室裡面裝了一台VMWare ESXi的機器,用起來相當的有趣,跟以往在個人電腦上面用VMWare的感覺差蠻多的,所以想說趁春節假期在家裡也來弄一台。

什麼是虛擬機器

簡單的說,就是把一台電腦當成很多台電腦,上面各自裝作業系統。

以往要在個人電腦上玩虛擬機器的話,大多數人都會選擇在Windows底下灌各種VM軟體,切割一部份的CPU、記憶體、硬碟資源做成虛擬機器,然後在上面安裝作業系統。這個情況下,Windows稱之為Host OS,而虛擬機器裡面的OS稱之為Guest OS。一般常用的VM軟體有:

  • VMware Server:設定比較麻煩,但是支援性比較完整。
  • VirtualBox:最近的版本支援了Windows下的Direct3D,但是距離可以用還有很遠的距離。
  • Virtual PC:只能裝各種Windows,Windows 7的XP Mode應該就是這玩意。

VM作業系統

ESXi則是採用另一種方式,他設計來就是專門為了跑VM的Host OS,所以可以避免Host OS多消耗的資源,而將大部分的資源留給Guest OS使用。採用這一種設計邏輯的VM OS有:

  • VMWare ESX:ESX是要錢的,ESXi是免費的,功能當然少掉很多,但是其實也還算夠用。
  • XenAmazon EC2用的就是這個,但是對作業系統的限制比較多一點,似乎FreeBSD還不能用?

詳細一點的情況請參考:VMware ESX/ESXi Server 功能初探及效能測試,這篇文章寫的還蠻淺顯易懂的,而且有很漂亮的比較圖表。

我之所以選用ESXi主要是因為支援性比較好,免費授權的功能又已經夠多了,非常適合拿來評估虛擬化的環境。

我要做什麼

沒有目的性的評估虛擬化,絕對只有當玩具的份,所以我想真的把一些服務移到虛擬機上面:

  • 把NAT的功能跟目前的Web Server分開:改用pfsense或dd-wrt x86這種Router OS,方便到時候把NAT移出來到另一台實體機器,或是改用硬體NAT。
  • 重灌FreeBSD:前一陣子發生過連compiler都需要升級版本才能夠裝新軟體的慘劇,看來是個重灌升級的好時機了。
  • 把P2P服務(eMule, Share, BitTorrent等)移到VM上:減少桌上型電腦的的磁碟I/O,雖然流量不算大,但是卻意外的很吃CPU Time。

參考資料

VMware ESX/ESXi Server 功能初探及效能測試 | Vixual
iThome online : : 以ESXi建立伺服器虛擬化平臺
安裝 VMware ESXi – OSSLab::開放軟體實驗室(Open Source Software Lab)

升級到FreeBSD 6.2、MySQL 4.1及WordPress 2.3.1

這實在不是我願意這麼爽快的升級我家的FreeBSD的啊啊啊啊!!

事實上是前幾天,我要試著把PHP 5.2.0升級到5.2.5的時候,發現怎麼安裝都會失敗。查了一下,有人說是Ports可能沒有抓完,所以當我要更新FreeBSD的ports的時候,又發現4.11是已經停止支援的版本,建議更新到現行版本。

但是呢,雖然php 5.2.5的本體安裝不過,php5 extension卻成功的過關了。不過呢,我之前有一些php4 extension還留在package tree裡面,所以就變成同一個程式,在新增移除程式的地方同時顯示了三個不同版本。

於是我就手動把多的那兩個刪除掉了。

他就順便幫我把要用的那一份刪除掉了。

刪除掉了。

啊啊啊啊啊,我的網站他爆炸了啊啊啊啊啊啊!~~

所以我只好把伺服器整台抱到樓上來,拿出FreeBSD 6.2的光碟片,開始安裝。首先我先試了用Upgrade,但是升級完後,在第二次開機的時候就無法登入了,出現的錯誤訊息大概是說pam.conf的設定有錯誤,所以系統爆炸了。

忙到早上六點左右,總算再某一次的完整安裝之後,他成功的活過來了。但是make world又花了我N個小時,更新所有的ports又花了N個小時,似乎活過來了…

但是,Sendmail默默的不動了,pop3跟smtp也都不動了…後來花了N個小時,改裝qmail才順利的讓他動起來,於是spamassassin就此不會動了…

升級MySQL 4.1的時候,由於之前安裝的時候有設default-charset=utf-8,所以其實還蠻順利的。但是在升級Wordpress 2.3.1的時候,就真的碰到很多問題,像是K2需要做巨大的更新、還有很多外掛需要更新版本,外加有一些函數的改變,所以介面要重新設定,至於css就不提了……