[ Linux ] 29 十一月, 2012 10:45

yum install setuptool

安裝完沒有任何額外套件, 需要再安裝所需套件.

網路管理模組 

yum install system-config-network-tui

[ Linux ] 28 十一月, 2012 16:57

今天嘗試要做一個NAT 轉換, 不過發現出不去, 最後才發現是iptables 沒設定完成.

我們首先再回顧一下iptables的圖表

如果我要做 NAT的話, 需要經過 nat PREROUTING -> filter FORWARD -> nat POSTROUTING (mangle我們用不到, 忽略)

在CentOS 6.3 的預設firewall規則沒有開啟任何Forward的 port

所以我們除了要在nat table設定好 MASQUERADE 外也需要額外增加forward的資訊

下面就是我們所需的所有指令

#vi /etc/sysctl.conf

修改 net.ipv4.ip_forward = 1

#sysctl -p

#iptables -t nat -A POSTROUTING -s 192.168.xx.xx/24 -o eth1 -j MASQUERADE

下面分別開啟icmp, udp 53, tcp ALL 視各別需要自行調整

#iptables -A FORWARD -p icmp -j ACCEPT
#iptables -A FORWARD -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT
#iptables -A FORWARD -m state --state NEW -m tcp -p tcp --dport 1:65535 -j ACCEPT

預設FORWARD Policy預設第一行是禁止所有的icmp, 把這行刪除 icmp才過得去.
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

#iptables -L --line-numbers
#iptables -D FORWARD 1


確認沒有問題後儲存這個設定

#/etc/init.d/iptables save
確認是否重新啟動沒有問題
#/etc/init.d/iptables restart

icmp reject 回應有 1、icmp-net-unreachable 2、icmp-host-unreachable 3、 icmp-port-unreachable 4、icmp-proto-unreachable 5、icmp-net-prohibited 6、icmp-host-prohibited

[ Linux ] 17 十二月, 2011 16:37
網管人NetAdmin
http://www.netadmin.com.tw/article_content.aspx?sn=1111010003
2011/11/8

新一代虛擬平台快速總覽

VMware vSphere 5新功能概觀

熊信彰
目前最熱門的話題當屬雲端運算,而虛擬化技術可讓雲端應用產生加乘的效用。在虛擬化領域內,VMware開發的技術眾所皆知,該公司已在7月正式發表vSphere 5,這個新版本到底又增加了那些強大的功能呢?以下將從版本授權方式、可創建巨型VM、儲存設備支援等等面向來詳細介紹。
虛擬化是雲端的基礎,領導廠商VMware於今年7月正式發表vSphere 5,並且在8月底開放下載試用。

對於這新一代的雲端作業系統,相信大家都很想知道,多了哪一些新的、更進階的重要功能?vSphere每個世代躍進幅度都很大,筆者針對一些較重要與較受矚目的功能,在此向各位介紹、快速總覽vSphere 5。

vSphere 5版本授權方式

新的vSphere for Enterprise簡化為Standard、Enterprise、Enterprise Plus三種版本,移除了vSphere 4的Advanced Edition。至於for SMB環境,則還是維持了Essentials、Essentials Plus兩種版本。

除此之外,並新增了vRAM Licensing Model,新的授權模式將不限制伺服器實體內的中央處理器(CPU)核心數與總實體記憶體,任何版本的vSphere 5均含有vRAM Entitlements。

▲ vSphere 5各個授權版本所提供的功能。(圖片來源:VMware網站)

vSpher 5推出時,一併發布了vRAM Entitlements。由客戶所採購的vSphere Edition決定每個實體CPU可以有多少vRAM的配額,然後加總得出一個vRAM Pool(並非看總實體記憶體有多少),如果用戶的VMs開機後的vRAM用量超過這個Pool,那麼就必須再額外購買License添加於vRAM Pool裡才行。

由於一開始vRAM limit per CPU限制較嚴格,這使得高密度記憶體用量的設備,例如刀鋒或多記憶體插槽的伺服器會非常吃虧,購置授權許可的成本可能會因vRAM Entitlements而暴增,這馬上引發了許多用戶的抗議聲浪,認為有徵收vTax之嫌。

▲ 修正前後的vRAM Entitlement比較。(資料來源:VMware網站)

VMware隨後也從善如流,著手修改授權模式,在三周之後放寬了vRAM限制,並明定單一VM的vRAM使用授權在vRAM Pool裡計算最多算到96GB,大於此也不須付額外License費用。

值得注意的是,免費版vSphere Hypervisor能使用32GB記憶體限制,指的是實體記憶體,而非vRAM。另外用於桌面虛擬化(VMware View)的VMs,則沒有vRAM Entitlements的問題。

ESXi時代正式來臨

以下從ESXi Only、Image Builder等不同方向來加以探討。

ESXi Only

vSphere 5已經不再有ESX版本,只剩下ESXi。ESX本身有含Service Console(或稱COS)提供管理者當作管理介面,而ESXi只有精簡的Hypervisor提供安裝,主要透過remote CLI來控管,兩者的配置指令並不相同,使用者轉換到ESXi平台需要時間來適應。

ESXi並非免費,ESX可以做到的事情,ESXi基本上都能做到。但是ESXi有免費的vSphere Hypervisor,只提供「單機」虛擬化,所以這個部分應該要個別分開來看。多個ESXi hosts要被vCenter所控管,進而達到企業級應用的功能,是要付費的。

Image Builder

vSphere 5的Image Builder讓用戶可以客製化ESXi的安裝映像檔,為不同硬體類型的實體Server打造專屬的Installation Images,部署各式各樣不同配置的ESXi。

這一系列的VIBs(VMware Installation Bundles)由不同的軟體元件所組成,例如Patchs或Drivers,將不同的ESXi image套用於不同規格的硬體伺服器。與Auto Deploy的功能搭配使用,能在短期內快速、大量部署ESXi host至資料中心。

Auto Deploy Server

Auto Deploy Server提供了靈活的部署環境,藉由PXE Server、DHCP Server以及TFTP Server所組成的群體帶動達到安裝自動化。伺服器可以從PXE網路啟動,由DHCP取得IP、導向TFTP Server下載鏡像(Image)至實體伺服器的記憶體來啟動運作程序。

短時間內即可部署數十、數百部ESXi hosts,並由vCenter套用不同的Host Profile給予不同的ESXi host,既不須硬碟,也不須存在於USB、SD記憶卡,完全在實體的RAM運作。

這種將ESXi與實體Server切割、分開的概念稱為Stateless,好處是重新部署、更新ESXi Hypervisor到任何一台伺服器上都非常地快速方便,只要伺服器重新開機,重新載入(Reload)Image後,彈指間就是另一種配置(等於重新安裝ESXi),快速應付任何一種所需要的環境,有助於雲端資料中心的資源配置,更加具備彈性。

▲Auto Deploy運作流程。(資料來源:VMware文件)

Firewall

新增的防火牆模組座落於vmnic與Virtual Switch之間,依據防火牆規則透過vmknic檢查數據封包,並提供類似舊版ESX Firewall的圖形化介面,讓管理者能以vSphere Client來設定防火牆(Firewall),避免從ESX轉換到ESXi的過渡期間不適應command設定,而造成規則錯誤或疏漏的問題。當然,若使用者十分熟悉ESXi,亦可直接使用CLI配置防火牆。

Shell

包含新的Command Line Interface,將以esxcli替換過時的esxcfg Command,這是由原先4.1版的TSM(Tech Support Mode)演進而來,主要用於維護及除錯用途,目前仍在發展之中,尚未完整。

VMware從vSphere 5開始嘗試整合為單一CLI,改善以往必須使用多種命令列工具,以及不同指令對管理者所造成的困擾。

▲esxcli命令範例。(資料來源:VMware文件)

SSD Swap Cache

將高比例的VM集中在實體伺服器,需要大量的實體記憶體。但因為實體記憶體資源有限,不可能永無止盡地供應給VM,因此VMware使用TPS、Memory Ballooning、Memory Compression(4.1版以後提供)等方式,讓VMs可超額使用記憶體,以便活化、有效率地運用記憶體資源。

如果上述方法都用盡,實體Memory依然不足,此時就必須由Hypervisor來做硬碟Swapping,因為虛擬機器並不曉得實際上記憶體已經不夠了,仍舊持續不斷地使用,此時VM自認為擁有的記憶體,其實全部或部分是來自硬碟,嚴重影響VM運作效能。

vSphere 5現在允許管理者將Swap檔案配置到SSD,藉由SSD讀寫效能比傳統硬碟優異的特性,增進VMkernel Swap的運作效能。

▲SSD Swap Cache。(資料來源:VMware文件)

可創建巨型VM

在可創建巨型VM方面,可從以下幾個方面來加以說明:

‧ Virtual Hardware 8:單一虛擬機器的虛擬硬體擴充能力,更加往上延伸。最大可使用到32個Virtual CPUs以及1TB的記憶體,足以勝任、肩負大型的Mission Critical Application於虛擬化平台的運作。(vSphere 4的Virtual Hardware Version 7支援到8個Virtual CPUs,記憶體則為255GB。)

‧ 更好的3D繪圖加速,提供桌面端更優異的體驗。

‧ VM支援USB 3.0裝置、讀卡機以及EFI:這裡指的是將vSphere client所在的遠端USB裝置,交付讓VM讀取,而非將USB裝置接在ESXi host上。有支援EFI的Guest OS也可以在Boot Options裡選EFI或傳統BIOS。

‧ 配置Multicore vCPUs的新使用者介面:以往想要使用一個實體的多核心CPU運作,在Guest OS會被辨識成多個Virtual CPU(Virtual SMP),可能就會造成某些軟體授權額外收費的問題。假使VM使用一個vCPU,又會產生實際上只運用到多核心其中一核的問題。所以MultiCore Virtual CPUs可以讓VM知道它實際上正在使用一個實體的CPU,但上面有多個Cores。此功能在4.1版就有,但要到進階設定去調整,而vSphere 5新增了圖形配置介面。

‧ vNUMA:邁入多核心處理器的時代,為了解決CPU與記憶體匯流排間的資料存取瓶頸,NUMA設計將系統分割為數個節點,固定的處理器、記憶體為相同節點,加快存取速度。一旦要存取不同節點,則透過Inter-connect交換資料。vNUMA技術可將硬體底層的NUMA架構傳遞給Guest OS,讓具有NUMA感知的應用程式,能夠完全發揮效益。

‧ Guest OS可選擇安裝Mac OS X Server v10.6(Snow Leopard):僅限於Apple Xserve system 3.1上安裝。

‧ 與舊版VMware Tools、Virtual Hardware相容:可讓vSphere 4的VM使用原來的VMware Tools與Virtual Hardware,運行於ESXi 5的host下,除非想使用到新功能,否則VM不必升級。

vCenter管理、可用度部分

關於vCenter管理、可用度部分,可從vSphere Web Client、vCenter Appliance和vCenter Server Heartbeat 6.4三方面來加以說明。

vSphere Web Client

早期可以透過Web Access功能,以瀏覽器登入vCenter管理VM,但功能受限,虛擬機器之外的大部分工作均不能使用,例如新增vSwitch、執行vMotion等。

這次VMware以Adobe Flex架構改寫成全新的Web Client,相容於IE 7、Firefox 3.5以上的瀏覽器即可登入vCenter使用Web介面管理虛擬化架構,執行絕大部分的vSphere功能,管理的實用性與可移動性大幅提升。

vCenter Appliance

VMware很早就在發展Linux版本的vCenter,直到vSphere 5正式以VA形式跟大家見面。vCenter Appliance的好處是部署簡單快速,只要OVF檔Import到ESXi,馬上就可以使用該vCenter來管理虛擬化環境,並且可以節省購買Windows OS的授權費用。

但目前限制為:Linux vCenter沒有Update Manager和vCenter Linked Mode且不支援vCenter Server Heartbeat、預設DB2的資料庫可使用5個hosts及50個VMs左右、採用Remote DB只能選擇Oracle。

vCenter Server Heartbeat 6.4

vCenter可說是vSphere的管理中心,在VMware虛擬化架構中的重要性不可言喻,一旦vCenter失效,雖然不會影響ESXi、VM的運作,但資料中心會立即陷入管理上的麻煩。

若希望vCenter Server停機時間能降到最低,則可以考慮使用vCenter Server Heartbeat。它能避免包括作業系統、網路、硬體與應用程式產生問題時,導致vCenter Downtime的發生。

vCenter Server Heartbeat 6.4可在Windows AD裡將Active、Passive Server當成唯一實體,配發單一Virtual IP,並與vCenter更進一步的整合,透過vSphere Client可監看Alerts與Events。

更細緻的網路資源監控與分配

以下針對NetFlow、Port Mirror、Network I/O Control Enhancement等三項來加以介紹。

NetFlow

vSphere 5以後,在vDS中可以啟用NetFlow功能,提供第三方網路工具軟體(Collector)擷取網路流量、單獨分析VMs、hosts或兩者間的Traffic。支援Intra-host(內部VM對VM)、Inter-host VM Traffic(VM對其他host的VM)以及VM to Physical Traffic(VM對實體)。在虛擬化環境中,NetFlow可以定義到PortGroup Level、Port Level、Uplink Level。

▲NetFlow。(資料來源:VMware文件)

Port Mirror

Port Mirror用途在於來源端傳送網路封包,透過Switch Port時會複製一份,傳送到連接網路監控裝置目的端的Switch Port。

可監測來源端任何vSwitch port的Ingress、Egress或所有Traffic,目的端可以是VM、vmknic或uplink port,使管理者在虛擬化架構的網路問題時,便於除錯與分析。與NetFlow相同,須vDS才能設定。

Network I/O Control Enhancement

隨著各式各樣的Network Traffic越來越多,在有限的實體網路卡情況下,網路資源如何管控與分配,就顯得很重要。

NetIOC可將網路資源從Network Resource Pool分配給不同類型的使用,包含VM Traffic、Management Traffic、iSCSI Traffic、NFS Traffic、FT Traffic、vMotion Traffic、User-defined Traffic、Replication Traffic等,都可以由Network I/O Control依照Limits、Shares來分派管理。

全面性的儲存設備支援

vSphere 5提供全面性的儲存設備支援,包括VMFS-5、Storage vMotion、Storage DRS、Storage I/O Control、FCoE Software Initiator、iSCSI Software Initiator Enhancements、vStorage API for Array Integration Enhancements等等。

VMFS-5

與上一版本VMFS-3相較之下,單一VMFS Volume已經可以達到64TB(不須額外Extend),單一VMDK仍舊維持2TB限制,而Pass-through RDM也可大於2TB,Unified Files Block Size在創建超大檔案時可使用1MB file block size。

此外,從VMFS-3升級到VMFS-5是非破壞性的線上工作,可以不用擔心VM運作或是存放,受到檔案系統升級的影響。不過線上升級VMFS,有些舊的特性還是會保留,例如file block size會沿用舊版、無法使用8k sub-blocks等新的格式,所以如果可以,VMware建議建立全新的VMFS-5 Volume,再將VM搬移過來。

Storage vMotion

Storage vMotion可讓VM檔案從原先所在的儲存設備,線上轉移到另一儲存設備,過程中不會有停機時間。原先若含有Snapshot的VM則不能Storage vMotion,而此限制在vSphere 5中已經解除。也因為如此,Storage DRS的功能得以實現。

Storage DRS

這是vSphere 5相當受到矚目的一項功能,如同各位所理解的DRS,能在Cluster裡將VM自由地線上搬遷移動,從此不用擔心VM身處何方。

而CPU與Memory資源夠不夠的問題,DRS會自動調度VM到硬體資源較充足的地方。Storage DRS已經將自動化負載平衡的功能,延伸到了儲存設備的層級。

由於虛擬機器是以檔案形式存放於儲存設備上運作,如果儲存設備的空間資源I/O資源利用率過高或過剩,配置不佳,對於VM Virtual Disk將有嚴重影響。

Storage DRS提供Initial Placement與Ongoing Balacing,依條件設置不同,再以Storage vMotion的方式,在不停機的狀況下,於Datastore Cluster內自動將VM檔案轉移至不同的儲存設備,改善儲存設備等級不同、空間利用率與I/O瓶頸的問題。

Storage I/O Control

以往,在沒有SIOC的情況下,VM的Disk Shares是在個別的ESX(i) Server競爭,這種情形會造成I/O queue的表現與希望的結果不符,因為Host Level儲存資源分配的問題並沒解決。

從vSphere 4.1開始正式有SIOC,可針對VM存取Datastore設定整體I/O Shares與Limits,達到真正QoS優先順序。到了vSphere 5,則是連NFS Datastore都可以設SIOC。

▲有無SIOC的比較。(資料來源:VMware網站)

FCoE Software Initiator

vSphere 4推出以後,新增了支援硬體式FCoE Adapter(Fibre Channel over Ethernet),而vSphere 5現在又更進一步,支援了FCoE Software Initiator。這意味著如果使用者的網路卡有部分FCoE卸載功能的話,即可當成軟體式FCoE Adapter,低成本地享用FCoE所帶來的好處。

iSCSI Software Initiator Enhancements

vSphere 4支援iSCSI MPIO來達成Storage Multipathing,但需要以Command Line的方式來啟用iSCSI Port Binding,這對想要在vSphere實施iSCSI多重路徑存取的人造成困擾。

vSphere 5現在改採圖形配置,簡化操作。管理者只要透過vSphere Client,即可在GUI圖形介面中設定vSphere的iSCSI Multipathing。

vStorage API for Array Integration Enhancements

VAAI也是vSphere 4.1之後的功能,可大幅增進Storage vMotion、FT轉換(因啟用Fault Tolerence時,VM儲存格式須為eagerzeroedthick),以及VM provisioning時的效能,降低CPU、Memory的使用率,但儲存設備須有支援此協定,才能發揮效用。

vSphere 5.0後的VAAI則新增NFS Full Copy的功能,特定的NFS儲存設備已支援VAAI,由Storage Array來Offload處理器與ESXi hosts之間的I/O,對於NFS複製、移動VM的效能幫助非常大。

VASA

vStorage API for Storage Awareness讓儲存設備的詳細資訊可透過vCenter展列出來,不必依賴各種不同廠牌的Storage管理工具來取得資訊。這有助於管理者或Storage DRS在移動VM檔案時,作為理想的判斷依據。

儲存設備廠商可將Storage相關各類資訊,依循VASA讓vCenter讀取,在兩者緊密搭配的狀況下,雲端世界的自動化運作、判讀與決策,才能更加順暢地接軌。

Profile Driven Storage

當產生一個VM的時候,必須選擇要存放VM files的Datastore,這時候就必須知道VM應該放置於哪一個合適的Datastore。

但是,資料中心所配置、共享的LUNs通常很複雜,有時候不容易知道虛擬機器應該放置於何處,隨便產生、隨便放置的結果,造成日後管理非常的困難。

此時,如果可以預先定義好不同層級的Datastore,將之分類固定,以後在創建VM或Storage DRS在自動搬遷VM檔案時,套用定義好的Storage Profile,就會很輕易找出符合該VM存放的棲身之所,解決VM與Datastore間的管理困擾。

Profile Driven Storage搭配Storage DRS功能,可達成事先依屬性簡化,事後自動重分配規畫,不用再費心於VM與儲存裝置間的最佳化安排。

▲Profile-Driven Storage。(資料來源:VMware網站)

備份、可用度更上層樓

vSphere 5的備份、可用度更上層樓,其中包括了vDR 2.0、vSphere Storage Appliance、vSphere HA等等,以下分別加以說明。

vDR 2.0

VMware Data Recovery是以VA形式部署於虛擬化環境的Appliance,定位於中小企業環境的備份與回復方案。新版vDR已完全改為64bit Virtual Appliance,擁有E-mail Report與更好的資料重複刪除效能。另外須注意的是,vDR即使沒有vCenter,也可以做資料復原的工作。只需重新部署新的vDR到ESXi,將備份空間連結回來(VMDK、NFS或CIFS形式),便可載入舊的設定,執行資料回復的工作。

vSphere Storage Appliance

對於中小企業環境來說,專屬的SAN儲存設備可能價格偏高,如果要達成Storage層級的HA更是一大負擔。若沒有FC SAN、iSCSI或NFS這些Shared Storage,也沒有辦法運用vMotion、vSphere HA、DRS等功能。VSA(目前為1.0版)可讓中小企業將ESXi host本機硬碟由Local端的VMFS-5走NFS協定,搖身一變為每部ESXi hosts都能存取的Shared Storage。

配置VSA可分為2個Nodes或3個Nodes運作模式,透過網路每個節點的NFS Datastore都會產生鏡像副本,同步到另一host,這樣即使因實體故障或網路斷線,Shared Storage功能依然可以正常運作。但VSA定位在SMB使用環境,提供低成本共享儲存資源、高可用度的解決方案,對於要求儲存效能、空間或區塊存取的企業,並非合適的選擇。

▲VSA架構。(資料來源:VMware文件)

vSphere HA

不同於前面版本,VMware重新改寫HA架構。新的vSphere HA改採一個Master host,其餘均為Slave hosts,移除以往需要5個Primary hosts的架構,避免客戶採用刀鋒伺服器時可能讓所有Primary hosts在同一機箱,而導致全面離線的情形。

vSphere HA的Heartbeat除了透過Network,也新增Heartbeat Datastore來互相溝通。另外配置、執行vSphere HA也不再需要透過DNS名稱解析,避免DNS額外的故障造成無法執行vSphere HA的狀況出現。

Fault Tolerance

因為vSphere HA是重新啟動VMs負載於其他hosts,會有短暫的停機時間,如果VM不允許任何因實體故障產生停機時間,便可啟用Fault Tolerance來達成零停機、沒有資料遺失的服務。FT為vSphere 4開始有的功能,因對於CPU與Guest OS有所限制,使用者必須先參閱相容性列表。vSphere 5的FT支援更多的處理器與作業系統。

由於FT是Primary VM與Secondary VM分別於不同ESXi host同步的關係,擁有隨時啟用與關閉、不限特定作業系統(在Support List上的Windows與Linux版本皆可使用FT)、配置簡單、沒有特定應用程式不能支援的限制,只要OS Level不當機,就可以達到不擔心實體損壞,保護任何應用程式的效果。

Application Monitoring API

使用Fault Tolerance不能完全取代MSCS之類的叢集服務,因為它並非Application-aware的解決方案,沒有保護至應用程式等級。為了不讓應用程式當機而產生停止服務的情形,藉由Application Monitoring API,開發廠商可依循發展Application監控軟體,整合到vSphere架構,確保Guest OS的應用程式層級也能受到保護。

SRM 5

SRM(Site Recovery Manager)用途在於異地備份與測試計畫,透過vCenter SRM Plug-in管理,底層是執行儲存設備廠商的遠端複製功能。

以往兩端需要同廠牌、同系列的Storage,而SRM 5新增了vSphere Replication功能,由Hypervisor透過網路即可進行遠端複製,這相當於Host Based就能提供異地災難復原方案,不用考慮Storage廠牌型號與等級。雖然效能無法與專有儲存設備相比,但對於有成本考量的企業來說是好消息。

[ Linux ] 17 十二月, 2011 13:27

看網路上有關VMware目前可以做的nested VM, 心裡真的很癢, 也很想知道這樣子VM->VM->VM下去到底可以做到幾層.

所以開始進行測試

我目前想做的架構如下

第一層          第二層          第三層                     第四層
ESXI5          vESXI5          Win2k8 Hyper-V      單純在上面建x64的CentOS VM

Intel VT-x     nested 64     64bit 無半虛擬化

所以上面的想法無法在第四層建立任何OS, 因為hyper-v不支援全虛擬化

第一層          第二層          第三層                     第四層
ESXI5          vESXI5        vvESXI5                 單純在上面建32bit的CentOS VM

Intel VT-x    nested 64     64bit 全虛擬化         32bit

10.10.100.10 10.10.100.20 10.10.100.30      10.10.100.51

準備環境如下:
G6950 x1
16G ECC RAM
300G HDD

第一層設定

  1. 安裝ESXI5
  2. Configure a vSwitch and/or Port Group to have Promiscuous Mode enabled
  3. Create a second Port Group named “Trunk” with VLAN ID All (4095) if you want to use VLANs on virtual hypervisors
  4. Log in to Tech Support Mode (iLO or ssh) and make the following tweak to enable nested 64-bit guests
    									echo 'vhv.allow = "TRUE"' >> /etc/vmware/config
    	
  5. 	Vsphere 5.1以後改成vhv.enable = "true"
    	
  6. 							這樣設定完後第二層就會是用nested guest執行	
    	
第二層設定
  1. 創建一個Guest OS: Linux / Red Hat Enterprise Linux 5 (64-bit)的VM
  2. 創建完後選edit, 將作業系統的部份改為other , ESXI5
    CPU/MMU Virtualization: Use Intel VT … EPT… ( bottom radio button)
  3. 安裝vESXI5 
  4. 這樣裝完這個vESXI5還可以安裝64bit的作業系統

第三層設定

  1. 比照第二層這樣建立一個vvESXI5, 不過 cpu的部份不用改virtualzation, 因為這一層做完後下面的VM會走全虛擬化
  2. vvESXI5裝完後即可再下面建立第四層的32bit全虛擬化作業系統
http://www.vcritical.com/2011/07/vmware-vsphere-can-virtualize-itself/#comment-12442
http://www.virtuallyghetto.com/2011/07/how-to-enable-support-for-nested-64bit.html 
http://tw.myblog.yahoo.com/max6886/article?mid=206
 

Nesting "Other" Hypervisors


For those of you who feel inclined to run other hypervisors such as Hyper-V, you can do so with latest release of ESXi 5.1. The process if very straight forward just like running nested ESXi host.

Step 1 - Create a Virtual Hardware 9 VM and select the appropriate guestOS. In this example, I selected Windows Server 2012 (64-bit) as the guestOS version.

Step 2 - Enable VHV under the CPU section if you wish to create and run nested 64-bit VMs under Hyper-V

Step 3 - You will need to add one additional .vmx parameter which tells the underlying guestOS (Hyper-V) that it is not running as a virtual guest which in fact it really is. The parameter is hypervisor.cpuid.v0 = FALSE
[ Linux ] 07 九月, 2011 15:24

 

http://www.howtoforge.com/apache2-how-to-redirect-users-to-mobile-or-normal-web-site-based-on-device-using-mod_rewrite

使用mod_rewrite來根據手機的瀏覽器導到手機專用頁面

 

Since the massive rise of smartphones and tablets like the iPhone, iPad, Android phones and tablets, BlackBerries, etc. you might have considered creating a mobile version of your web site. This tutorial explains how to configure Apache to serve the mobile version of your web site if the visitor uses a mobile device, and the normal version if the visitor uses a normal desktop PC. This can be achieved with Apache's rewrite module.

I do not issue any guarantee that this will work for you!

 

1 Preliminary Note

In this tutorial, my "normal" web site is accessible under http://www.example.com and http://example.com, while my mobile site is called http://m.example.com. These vhosts already exist on my system, so I'm not going to cover how to set them up.

 

2 Enabling mod_rewrite

First you have to make sure that the Apache module mod_rewrite is enabled. On Debian/Ubuntu, you can enable it like this:

a2enmod rewrite

Restart Apache afterwards - for Debian/Ubuntu, the command is:

/etc/init.d/apache2 restart

 

3 Configuring Apache To Allow Rewrite Rules In .htaccess Files

My "normal" web site www.example.com/example.com has the vhost configuration file /etc/apache2/sites-available/www.example.com.vhost and the document root /var/www/www.example.com/web.

My mobile site m.example.com has the vhost configuration file /etc/apache2/sites-available/m.example.com.vhost and the document root /var/www/www.example.com/mobile.

I want to place the rewrite rules for each site in an .htaccess file (although it is also possible to place the rewrite rules directly in the vhost configuration file). Therefore I must first modify our vhost configurations so that both .htaccess files are allowed to contain rewrite directives. We can do this with the line AllowOverride All (which allows .htaccess to override all settings in the vhost configuration):

vi /etc/apache2/sites-available/www.example.com.vhost

						[...]
			
			        <Directory /var/www/www.example.com/web/>
			
			                AllowOverride All	</Directory>[...]			
			

vi /etc/apache2/sites-available/m.example.com.vhost

			        <Directory /var/www/www.example.com/mobile/>
			AllowOverride All        </Directory>[...]			
			

Restart Apache afterwards:

/etc/init.d/apache2 restart

 

4 Creating Rewrite Rules

Now let's create the rewrite rules for the "normal" web site www.example.com/example.com that will redirect all users of mobile devices to the mobile version m.example.com - I focus on the relevant devices/user agents here which are Android, Blackberry, googlebot-mobile (Google's mobile search bot), IE Mobile, iPad, iPhone, iPod, Opera Mobile, PalmOS, and WebOS.

The /var/www/www.example.com/web/.htaccess file looks as follows:

vi /var/www/www.example.com/web/.htaccess

						<IfModule mod_rewrite.c>RewriteEngine OnRewriteCond %{HTTP_USER_AGENT} "android|blackberry|googlebot-mobile|iemobile|ipad|iphone|ipod|opera mobile|palmos|webos" [NC]RewriteRule ^$ http://m.example.com/ [L,R=302]</IfModule>			
			

For our mobile web site m.example.com, the rewrite rules that redirect all users that don't use a mobile device to our "normal" web site www.example.com/example.com look as follows - I've simply negated the RewriteCond condition from the previous .htaccess file:

vi /var/www/www.example.com/mobile/.htaccess

						<IfModule mod_rewrite.c>RewriteEngine OnRewriteCond %{HTTP_USER_AGENT} "!(android|blackberry|googlebot-mobile|iemobile|ipad|iphone|ipod|opera mobile|palmos|webos)" [NC]RewriteRule ^$ http://www.example.com/ [L,R=302]</IfModule>			
			

That's it! Now you can do some testing, e.g. visit m.example.com with a normal desktop browser:

If all goes well, you should be redirected to www.example.com:

Now test with a mobile device (I use an Android phone here) and go to www.example.com:

You should be redirected to m.example.com:

 

[ Linux ] 18 八月, 2011 16:48
 

用Virtualbox做了一個centos6, 另外再備份出來一份centos6 VM拿出來用,啟動系統後,出現了一個怪問題,eth0網卡啟動不了. 原因出現在備份VM時我選擇了重設網卡的mac.

 

網路上找到有人遇到相同的問題, 查測網路卡問題

1.看開機流程時抓到的硬體(使用dmesg)出現了一個特別的訊息,

  udev: renamed network interface eth0 to eth1

 

2.查看/proc/net/dev,抓到的網路卡是eth1

  eht1:    30634      820  0      0      0      0      0      0      4401        36    0      0      0      0      0      0

 

3.使用lspci查看,網路卡是有抓到的

02:01.0 Ethernet controller: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (ewv 10)

 

其實,到這裡就可以很清楚的知道,為什麼eth0不見了,啟動eth0會出現,網路卡初使化異常

ifup eth0

Device eth0 does not seem to be present, delaying initialization.

 

在尋找資料的過程中,找到了這一篇文章http://blog.xuite.net/happyman/tips/16199196,指點清楚的說明了開機中這段訊息出現的原因(udev: renamed network interface eth0 to eth1)。因為第一張網卡的MAC Address被鎖定在eth0資料中,udev自動產生了第二張eth1這張網卡,導致towns原先的設定檔/etc/sysconfig/network-scripts/ifcfg-eth0設定檔無法使用,網路卡自然就無法啟用了,最主要造成該問題的就是towns啟動VM的第一個流程“重掛Fedora 10VM”,網路卡的MAC Address改變了,這樣的問題會發生在換網卡後,網路無法啟動。

 

處理方式,將/etc/udev/rules.d/70-persistent-net.rules這個檔案刪除,重新啟動server,該檔案就會被重建,MAC Address也會重抓

 

註:Centos6 產生該檔案(70-persistent-net.rules)的程式與ubuntu並不同,在該檔案中,有詳細的說明

[ Linux ] 31 五月, 2011 13:21

六款優秀的開源Linux服務器配置工具


服務器配置工具是讓服務器從裸机變為完整系統的前期准備工作。用戶很快會認識到配置多台机器是一項十分耗時的工作,系統管理員對此當然有充分了解, 有序部署額外服務器或替換有故障服務器的能力對保証企業應用程序運行至關重要,服務器配置工具可以幫助管理員減輕壓力。此外,配置操作系統的一大困難還在 于,它上面有數以千計的組件,各個都有不同的接口,因此考慮到服務器所涉及的任務,自動配置工具無疑復雜的惊人。配置的任務將包括安裝操作系統、內核模 塊、中間件和應用程序,而且不同企業有不同的定制需求,比如web服務器、電子郵件服務器等等。Linux上有很多復雜的配置工具,這里列出六款優秀的Linux服務器配置工具,供系統管理員參考。
 

FAI: http://fai-project.org/download/

FAI (Fully Automatic Installation) 是一個無交互的 Linux 系統自動安裝工具,可對安裝過程進行預先定制、軟件配置管理、虛擬机和 chroot 環境配置,適合用來安裝大規模的架构和集群。

 

M23 http://sourceforge.net/projects/m23/files/

m23 是一個軟件分發和管理系統,用于 Debian Linux。使用 m23 可幫你在網絡中一次性快速安裝上千台服務器,並可對安裝的軟件包進行管理。

xCAT http://xcat.sourceforge.net/yum/download.html

xCAT (Extreme Cloud Administration Toolkit) 是一個開源的可擴展的高級集群管理和配置工具,允許使用者通過一個單點控制和管理一個集群系統。xCAT 最先是為 IBM xSeries 系列 Linux Cluster 做的第三方軟件。它在簡化集群管理的同時,還使集群能夠方便地實現快速擴展,從而提高了系統管理員的工作效率。

Spacewalk 是一個Linux和Solaris的系統管理解決方案。

http://spacewalk.redhat.com/download.html

 

Cobbler 可以用來快速建立 Linux 網絡安裝環境,它已將 Linux 網絡安裝的技朮門檻,從大專以上文化水平,成功降低到初中以下,連補鞋匠都能學會。

https://fedorahosted.org/cobbler/wiki/DownloadInstructions

 

openQRM提供開放的插件管理架构,你可用很輕松的將現有的數据中心應用程序集成到其中,比如Nagios和VMware。openQRM的自動化數据中心操作不但可用幫助你提高可用性,同時還可以降低您企業級數据中心的管理費用。

http://www.openqrm.com/?q=node/110

 

 

本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2010-10/29488.htm

[ Linux ] 17 十一月, 2010 19:03

例子1:[Perl]向syslog寫入自定義日誌(Sys::Syslog)

#!/usr/bin/perl

use Sys::Syslog qw(:DEFAULT setlogsock);

#若要使用setlogsock則需use Sys::Syslog qw(:DEFAULT setlogsock);

print $$;

my $message="test_message";

#通過internet域套接字或通過本地UNIX域套接字連接SYSLOGD,$socktype : inet(default) unix

$socktype="unix";

setlogsock($socktype);

#$identity,$options,$facility:服務器標識符,一組選項消息類型

#$options: cons,ndelay,nowait,pid : 若發送到syslogd失敗則直接寫到控制台,不等待立刻傳輸,包括PID,不等待被傳輸就返回

$identity="root";

@options=('cons','pid');

#$facility 定義了消息類型如下:

#       auth            用戶認証
#       authpriv        有特權的用戶認証
#       cron            cron守護進程
#       daemon          各種系統守護進程
#       ftp             ftp守護進程
#       kern            內核消息
#       local0-local7   保留用于本地用法
#       lpr             打印机
#       mail            郵件
#       news            新聞
#       syslog          內部syslog
#       uucp            uucp系統
#       user            各種用戶程序來的消息

$facility="local0";

openlog($identity,\@options,$facility);

#syslog 優先級:  emerg alert crit err warning notice info debug

syslog('err',$message);

[ Linux ] 27 九月, 2010 16:12

很多人不太會設定htaccess, 這邊有一個簡單的範例
.htpasswd可以用htpasswd這個工具程式產生.
.htgroup是一個文字檔的GroupFile

#設定帳號密碼驗證
AuthName "different"
AuthType Basic
AuthUserFile /var/www/.htpasswd
AuthGroupFile /var/www/.htgroup
require group different
Order deny,allow
#設定IP驗證
deny from all
allow from 59.120.100.100/255.255.255.240
Allow from 168.95.1.1
#允許只要通過IP或帳號密碼其中一個驗證就可以
satisfy any

 

[ Linux ] 27 九月, 2010 15:44

很多人會問我怎麼擋掉大陸來的訪問, 因為很多是機器人或是攻擊, 其實用htaccess來設定IP過濾不難, 難的是我們得到的IP準確度夠不夠, 會不會造成誤擋的情形? 在網路上找到這樣的網站, 他已經幫我們搜集好IP並且可以產生htaccess檔. 

Internet的IP地址和AS號碼分配是分級進行的。ICANN (The Internet Corporation for Assigned Names and Numbers),負責全球Internet上的IP地址進行編號分配的机构(原來是由IANA負責)。 根据ICANN的規定,ICANN將部分IP地址分配給地區級的Internet注冊机构 (Regional Internet Registry),然后由這些RIR負責該地區的登記注冊服務。現在,全球一共有5個RIR:ARIN,RIPE,APNIC,LACNIC,AfriNIC. ARIN主要負責北美地區業務,RIPE主要負責歐洲地區業務,LACNIC主要負責拉丁美洲美洲業務,AfriNIC負責非洲地區業務,亞太地區國家的IP地址和AS號碼分配由APNIC管理。 

理論上想要IP的資料可以向這些單位要,不過就算他有提供,我想大家還是會嫌麻煩, 這時候我們請出了「BLOCK COUNTRY」這個網站。 透過「blockcountry」線上工具網站產生的htaccess語法來替自己封鎖想要封鎖的IP網段國家。 

網站名稱:Block A Country
網站網址http://www.blockcountry.com

第1步 來到Block country 網站首頁,首先你會看到一個框框,框框中有許多國家,請您挑選要封鎖的國家,可以複選,選擇完成後請點擊下方的﹝Block Now!﹞。

第2步 接著畫面會秀處一長串的程式碼,請將此程式碼複製起來!

第3步 這時,請建立一個名為「htaccess.txt」純文字檔案,將剛剛網頁上產生的程式碼貼到純文字檔案中,然後儲存。

程式碼之中,以下這串網址您可以自由更改,可以更改你要導向的頁面,你可以保持預設不去做變動或者是改成你要導向的網頁網址。

http://blockcountry.com/blocked.php

第4步 接著請上傳剛剛設定好的htaccess.txt檔案,然後將檔案上傳到網站根目錄,也就是放在「public_html」目錄下,接著將檔案名稱改成「.htaccess」,這樣就完成設定封鎖該國家的訪客囉!

如果網站上已經有.htaccess檔案

若您發現您網站上已經有.htaccess檔案,那請下載目前的.htaccess檔案,開啟後以不破壞原本程式結構下,將封鎖某國IP的語法加在原本的語法下方,儲存檔案後然後上傳就可以囉!

以上內容大部份是網上的專家分享,我只有做一些整理跟修改,其實最根本的方法是請ISP在Router上面幫你處理,不過想當然而,除非你錢付得夠多,或是最後自己管路由,不然就先不要想到這個方法吧。

[ Linux ] 01 六月, 2010 17:29

我們常會發生下面的情況, 在Linux/Unix編好了一個shell檔或是做了一個conf檔, 然後下載到Windows PC下, 最後再上傳到另外一台Linux的主機, 這時候會發現, shell檔會出現下面錯誤

 bash: ./xxx : bad interpreter:No such file or directory

這其實是因為我們FTP下載下來以後, 文字檔就自動被轉換成DOS模式了, 所以如果我們想要上傳到Linux主機上, 就必需要在windows內用notepad plus轉換成unix格式, 或是傳上linux主機後再執行dos2unix來轉換檔案.

在linux下也可用下面的方法
vi filename
然後用命令
:set ff?
可以看到dos或unix的字樣. 如果的确是dos格式的, 那麼你可以用set ff=unix把它強制為unix格式的, 然后存盤退出. 再運行一遍看.

不過不管那個方法, 都很麻煩, 要再做一次轉換, 下面提供一個一勞永逸的方法: 強制讓FTP用二進位來傳檔

在filezilla裡面的編輯->設定-> 然後在傳輸裡面的檔案類別, 預設的傳輸模式請由"自動"改為"二進位檔案",  這樣子的設定會將所有的檔案當成二進位檔, 所以不會做任何格式的轉換.  反正現在的文字編輯器如editplus 或notepad plus都可以做unix與dos的格式轉換與判斷. 所以, 設完這個後, 再也不用再辛苦的做轉換檔案格式的動作了.

 

[ Linux ] 04 九月, 2009 16:32

awstats安裝完後有時候會需要更詳細的資料, 想知道該IP是從那個國家來的, 可以使用免費版的GeoIP, 準確率60%, 付費版的聽說是75%

Geo:IP 除了perl元件外需要C library支援

自動安裝library

  1. C library可以用yum 安裝
    yum install GeoIP
  2. Perl library  可以用CPAN
    cpan
    install Geo::IP (可能有相依性的問題)

手動安裝library方式如下

  1. perl的Geo::IP需要有C library支援
    wget http://www.maxmind.com/download/geoip/api/c/GeoIP-1.4.6.tar.gz
    tar zxvf GeoIP-1.4.6.tar.gz
    cd GeoIP-1.4.6
    ./configure
    make
    make check
    make install
    echo '/usr/local/lib' >> /etc/ld.so.conf
    /sbin/ldconfig /etc/ld.so.conf
    cd ..
  2. perl的Geo::IP
    wget http://www.maxmind.com/download/geoip/api/perl/Geo-IP-1.38.tar.gz
    tar zxvf Geo-IP-1.38.tar.gz
    cd Geo-IP-1.38
    perl Makefile.PL
    make
    make test
    make install
    cd ..

下載所需的資料檔

wget http://www.maxmind.com/download/geoip/database/GeoIP.dat.gz
gunzip GeoIP.dat.gz
mv GeoIP.dat /var/lib/GeoIP/GeoIP.dat (如果資料夾不存在手動建立)

修改awstats.domainname.conf

vi awstats.domainname.conf
拿掉註解並修正
LoadPlugin="geoip GEOIP_STANDARD /var/lib/GeoIP/GeoIP.dat"

重新跑一次awstats應該就ok了, 再來我們要每個月自動更新IP的檔案

建立自動更新的程式
vi /usr/connexone/bin/update_GeoIP.sh
#!/bin/bash
# Name: update_GeoIP.sh
# Version: 0.1
# Last Modified: 2009-09-04
wget http://www.maxmind.com/download/geoip/database/GeoIP.dat.gz
gunzip GeoIP.dat.gz
mv GeoIP.dat /var/lib/GeoIP/GeoIP.dat

加入每月更新 
crontab -e
15 7 5 * * /usr/connexone/bin/update_GeoIP.sh >/dev/null

[ Linux ] 24 七月, 2009 09:56

使用nessus掃描, 發現主機的Bind version可以很簡單的查出來, 還是想辦法隱藏起來的好. 

How To Hide BIND DNS Sever Version
by Vivek Gite · 2 comments

Q. How do I hide my dns server version number from command such as:
dig @ns1.example.com -c CH -t txt version.bind

How do I hide version under BIND9 Linux / UNIX systems?

A. This is nothing but security through obscurity. You can hide version but one can always fingerprint your name server to find out exact version details using fpdns tool.

Open your named.conf file, find out options { ... }; section,

options
{
        query-source    port 53;
        query-source-v6 port 53;
        listen-on { 174.ttt.xx.yy; };
        directory "/var/named"; // the default
        dump-file               "data/cache_dump.db";
        statistics-file         "data/named_stats.txt";
        memstatistics-file      "data/named_mem_stats.txt";
        dnssec-enable yes;
        recursion no;
        allow-notify { 174.zzz.yy.zz; 172.xx.yy.zz; };
        version "BIND";
};To hide your bind version:

version "YOUR Message";

OR

version "use fpdns to get version number ;)";

Save and close the file. Restart named, enter:

# service bind9 restart

OR

# service named restart

How do I see bind version?
Use dig command, enter

$ dig @ns1.softlayer.com -c CH -t txt version.bind

As usual, you can use fpdns to find out version number.

[ Linux ] 18 六月, 2009 20:05

當要查閱proftp的log時必看 

The xferlog file contains logging information from the FTP server daemon, proftpd(8).

This file usually is found in /var/log, but can be located anywhere by using a proftpd(8) configuration directive. Each server entry is composed of a single line of the following form, with all fields being separated by spaces.

current-time   transfer-time   remote-host   file-size   filename   transfer-type   special-action-flag   direction   access-mode   username   service-name   authentication-method   authenticated-user-id  completion-status
current-time
is the current local time in the form "DDD MMM dd hh:mm:ss YYYY". Where DDD is the day of the week, MMM is the month, dd is the day of the month, hh is the hour, mm is the minutes, ss is the seconds, and YYYY is the year.
transfer-time
is the total time in seconds for the transfer.
remote-host
is the remote host name.
file-size
is the size of the transferred file in bytes.
filename
is the name of the transferred file.
transfer-type
is a single character indicating the type of transfer. Can be one of:
a
for an ascii transfer
b
for a binary transfer
special-action-flag
is one or more single character flags indicating any special action taken. Can be one or more of:
C
file was compressed
U
file was uncompressed
T
file was tar'ed
_
no action was taken
direction
is the direction of the transfer. Can be one of:
o
outgoing
i
incoming
d
deleted
access-mode
is the method by which the user is logged in. Can be one of:
a
(anonymous) is for an anonymous guest user.
g
(guest) is for an passworded guest user (see the guestgroup command in ftpaccess(5)).
r
(real) is for a local authenticated user.
username
is the local username, or if guest, the ID string given.
service-name
is the name of the service being invoked, usually FTP.
authentication-method
is the method of authentication used. Can be one of:
0
none
1
RFC931 Authentication
authenticated-user-id
is the user id returned by the authentication method. A * is used if an authenticated user id is not available.
completion-status
is a single character indicating the status of the transfer. Can be one of:
c
complete transfer
i
incomplete transfer