Saturday, May 26, 2012

虛擬化筆記(6):將實體機器匯入 VMware ESXi 主機

從無到有的建構請參考虛擬化筆記(5):VMware ESXi 新增虛擬機器,但是如果系統已經在另一台實體機器上面了,那該如何直接轉換成 VMware 的 Virtual Machine 呢?這就是這篇文章的主旨啦。快點去官方網站看看 VMware vCenter Converter Standalone,沒看錯它是免費的!話不多說,我們一起來安裝下去...

安裝 vCenter Converter

1. 執行檔打開安裝

2. 基本工:下一步 Next

3. 版權條款項目閱讀,同意才能繼續下一步


4. 選擇安裝路徑,亦可自行更換

 5. 安裝方式:以下操作安裝在本機

 6. 準備好安裝的話就點選 Next 下一步囉!

安裝進度...

7. 完成 VMware vCenter Converter Standalone 安裝

轉移機器到 VMware vSphere ESXi  主機

這才是重頭戲啊,給他用力地瞧下去 :)

1. 點選左上角的 Convert Machine
 畫面非常陽春,也很簡明

2. 選擇 Source 來源的機器狀態


目前的電源狀態,網路位置以及登入的帳號密碼等等,系統應該是幫你登入然後抓資料下來吧!開始侵入另一台電腦了,還要安裝一些軟體在遠端的電腦,才能夠順利的將機器 Dump 出來。



3. 選擇  Destination 的部分,就是 vSphere ESXi  主機的存放位置

4. 選擇欲放置的叢集位置

5. 選擇叢集底下的 ESXi 主機

6. 選擇檔案虛擬化之後的檔案所放置的磁碟

7. Converter 的操作內容


8. 轉換中...


會在 Datastore  的路徑,建構轉換後的資訊,將實體的電腦資訊變成數位化的電子檔案存放在磁碟中。

9. VMware vCenter Converter Standalone 轉換成功!

接著就會在 vSphere ESXi 主機中看到該 Virtual Machine 囉!可以利用這個已經建立好的虛擬主機進行大量複製,但是記得 SSID 不可以重複以免造成網路錯誤。

到此虛擬化筆記的紀錄,已經可以有系統的建構完整的網路架構,稍微複習一下這系列的文章:

虛擬化筆記(1):VMware ESXi 5.0 安裝設定
虛擬化筆記(2):VMware vSphere Client 5.0 安裝
虛擬化筆記(3):VMware vCenter Server 5.0 安裝
虛擬化筆記(4):VMware ESXi 5.0 Network 與 iSCSI 架構配置
虛擬化筆記(5):VMware ESXi 新增虛擬機器
虛擬化筆記(6):將實體機器匯入 VMware ESXi 主機

虛擬化筆記(5):VMware ESXi 新增虛擬機器

VMware 系列的產品建立虛擬機器都非常簡單,相信大家應該多多少少碰過 VMware Player 或是 VMware Workstation 吧!是的,操作的步驟幾乎雷同,就讓我們看一下 VMware vSphere vCenter 建立虛擬機器的畫面吧。

建立虛擬主機

1. 在叢集內的 VMware vSphere ESXi  主機上面按下滑鼠右鍵,選擇 New Virtual Machine

 2. 選擇建立虛擬主機的方式,通常是預設或是自訂兩種方法

3. 為虛擬主機命名


4. 選擇虛擬主機存放的磁碟空間

上圖所選擇的 datastore-9T 是前一篇所建立的 iSCSI 網路磁碟,在 VMware 的專有名詞是 Share Storage,因此就算 VMware vSphere ESXi  主機重新安裝,只要檔案還在 Share Storage 就可以讓其他主機先為之代管。

5. 選擇安裝的作業系統分類

6. 選擇網路介面卡以及網路區塊

網路區塊的意思是,可以同一個網路介面卡的主機,利用 VLAN 的技術在封包增加 vTag 的技術讓主機之間徹底分離,且減少網路封包的廣撥。

7. 選擇硬碟空間的大小以及型態

網路型態可以分為三種
  1. Thick Provision Lazy Zeroed
  2. Thick Provision Eager Zeroed
  3. Thick Provision
顧名思義,1 非常懶惰,直接把空間配出來,也不先給你初始化,2 就稍微好一點,幫你先初始一下,3 的話則是動態配置大小,當然虛擬主機的 IO 效率就沒有前面的方式來的好囉。


8. 虛擬主機配置的設定值


替虛擬主機作業系統

1. 掛載 CD/DVD,可選擇本機磁碟或是 Share Storage 抑或是其他磁碟的 ISO 映像檔

 2. 選擇 Share Storage 內的 ISO 檔


安裝畫面,就不多提了。




如法炮製就能建立許多虛擬主機,至於其他快速的建立方法大概就是 vCenter 的特殊功能,再配合作業系統內建的初始化工具(sysprep),這部份就留到下一篇說明。 

延伸閱讀

[1.] VWware vSphere 5 上課小記 Day1

Friday, March 30, 2012

SQLite3 移植 ARM9 架構 (S3C2440)

從來沒有想過還會再跟嵌入式碰面! 我深深地認為這系列的文章是一場惡夢,沒有學的很懂 :)
機緣巧合桌子上出現了具有 S3C2440 CPU 的 ARM9 板子,而目的就只有一個: 把 x86 的某個 C 語言放到上面跑。根據這個需求和觀看了一下程式,大致上分為兩個部分,分別是 SQLite3 移植到 ARM9 以及特定的 C 語言移植到 ARM9,底下僅分享 SQLite3 移植到 ARM9 的步驟。

以下分為五個操作步驟做說明:

1. 建立 Toolchain
偉大的 Toolchain 是強者同事編譯好之後給我的,因此本次操作是站在巨人的肩膀上完成,實在是很幸運。觀看歷史操作 History 感覺做了許多事情,可能是之前學藝不精,霧煞煞無法領會 :P
開發環境路徑如下
// Cross Compiler 路徑
/usr/local/arm/
// 操作路徑
/home/bernie/Desktop/SQLite/

2. 編譯與組譯 SQLite3
下載 SQLite 原始碼 解壓縮 Source
mv ~/Download/sqlite-autoconf-3071000.tar.gz ~/Desktop/SQLite
cd ~/Desktop/SQLite/
tar zxvf sqlite-autoconf-3071000.tar.gz
建立安裝資料夾(Build)
cd sqlite-autoconf-3071000
mkdir arm-linux
組譯
// PWD 是當前的資料夾
./configure --host=arm-linux --prefix=`pwd`/arm-linux
編譯
make clean
make && make install

3. 準備相關的檔案資訊
  • /bin : 放到  ARM 開發版 /usr/bin
  • /include : SQLite C 語言的 API (僅編譯需要)
  • /lib :  libsqlite3.so.0.8.6 動態連結檔
關於重要的動態連結檔
  • 開發版放到 /lib
  • 開發機放到 cross compiler 的 /lib,我的例子是 /usr/local/arm/arm-linux/bin
兩邊都建立 Software link,指向 libsqlite3.so.0.8.6
ln –s libsqlite3.so.0.8.6 libsqlite3.so
ln –s libsqlite3.so.0.8.6 libsqlite3.so.0

4. 移植測試: Command line 執行
sqlite3 test.db
SQLite version 3.7.11 2012-03-20 11:35:50
Enter ".help" for instructions
Enter SQL statements terminated with a ";"

sqlite>
有出現,就是成功!其他指令網路上再看看吧 :)

5. 移植測試: 動手寫一個 C 程式與 SQLite 互動
直接參考 [4. ] 的 sample code,大絕就是複製貼上,頂多就是改一下 int main(){... return 0;} 

編譯與執行程式
arm-linux hello_sqlite3.c –o hello_sqlite3.o

// 將執行檔放到板子上跑~
chmod 644 hello_sqlite3.o
./hello_sqlite3.o

到此完成 SQLite3 porting ARM 的操作!

Reference

[1. ] Android + Mini2440无线网络视频监控系统(三)SQLite的移植
[2. ] Sqlite3.3.6移植详解
[3. ] Embedded System 修課紀錄(1-1)
[4. ] 就讓 C 語言和 Sqlite3 擦出火花吧

Sunday, March 11, 2012

虛擬化筆記(4):VMware ESXi 5.0 Network 與 iSCSI 架構配置

vCenter 以及 vSphere Client 都準備好之後,接著可以透過 vCenter 去納管 ESXi 主機,採用同一個操作畫面而同時對多台 ESXi 做許多操作,例如:拖移的方式將 VM ( Guest 虛擬主機) 放到另一台 ESXi 主機完成備援或是複製 -- vMotion

納管(多台) ESXi 主機

1. 登入 vCenter,視安裝環境而改變欲登入之網路位址

2.為你的虛擬環境建立一個名稱。 主機名稱上面滑鼠按右鍵選擇 [New Datacenter]

3. 新增一台 ESXi 主機。在 [Data Center] 上面按下滑鼠右鍵,選擇 [New Host]

4. 輸入 Host 的網路位址,以及虛擬化筆記(1):VMware ESXi 5.0 安裝設定步驟七所建立的root 密碼,之前如果沒有設定的話預設是空白,可以不用輸入。

5. 選擇 "Yes" 建立與該 Host 主機連線

6. 到此建立連線算是成功。附圖的 VM 可以忽略,為了擷取操作圖片,將 vCenter 與 ESXi 主機的連線刪除,重新建立導致。可見如果試用期限到期之後,刪除連線在建立的話原本的資料都還會存在喔。

7. 試用版,請按 [Next],否則可以輸入您購買的 License。另外說明 ESXi 主機採用 CPU 售價,至於不同 CPU 數量取得的序號有啥差異就等待軟體採購案通過吧,目前不曉得是否會鎖住/開啟某些效能?!

8. 還真的不確定 [Lockdown mode] 是啥,所以不要勾選,選擇 [Next]

9. 選擇要放在哪一個虛擬環境的資料中心 [Data Center]

10. 建立摘要,選擇 [Finish] 完成納管 ESXi Host 操作。請忽略 Datastore 的描述將在後續為各位解說。

 11. 重複 1~10  的操作依序納管其他兩台 ESXi Host 後的樹狀結構。

ESXi 主機網路設定

目標

以下以此環境作為範例說明,四張網路介面卡其中兩張做實體的負載平衡,且網路對外連線到 Internet,另外兩張網卡與內部機櫃的網路儲存設備連線,個別連線到 iSCSI 儲存裝置的一個控制器。iSCSI 控制器操作為類似雙通道的作法,可作為超越單一傳輸(100Mbps)之限制提高傳輸速度,大約到130~150 Mbps。這部份的描述會放在虛擬化筆記結束後記錄,與實體機器的配置有所關連,此單元先註記虛擬化的軟體設定。
 1. 點選 Host,並選擇 [Configuration] 分頁,左側選單可以看到 [Hardware],並按下 [Network] 可以看到畫面如下所示。

2.  建立 iSCSI 專用的虛擬網路介面卡,右側 [Add Networking] 出現以下畫面,並且選擇 [VMkernel] 的項目。

3. 將此網路設定命名 Network Label,下面是將設定的網路狀態預先畫圖出來。

4. 在此網路介面設定一個固定 IP,使其能夠與網路儲存裝置 iSCSI 控制器在同一個區域網路。

5. 點選 [Finish] 就完成該項設定,

6. 成功建立後的畫面,上面多了一組 vSwitch,而在同一個 vSwitch 的 VM 還可以互相連線呢,是不是跟真的 Switch 類同!

7. 依照 1~6 的操作建立 [iSCSI 2] 的 vSwitch。並設定第一組 vSwitch 的負載平衡設定。點選右上角 [Properties]

8. 切換到 Network Adapters 分頁

9. 按 [Add...] 新增一個網路介面卡到該組 vSwitch

10. 完成設定,按下 [Close] 離開設定畫面

iSCSI 網路儲存裝置掛載

1. 新增 [Add...] 儲存裝置:點選 Host,並選擇 [Configuration] 分頁,左側選單可以看到 [Hardware],並按下 [Storage Adapters] 可以看到畫面如下所示。

2. 新增 [Software iSCSI Adapter] 點選 [OK]

3.點選確定新增 Software iSCSI Adapter

4. 可以看到以下 Master/Detail 畫面,[Storage Adapters] 的 iSCSI Software Adapter 點選一下,在 Detail 的地方點選 [Properties]

5. 啟動 Software Initiator Properties 的 Status 變成 Enabled 讓主機支援 MPIO 多重路徑。

6. 切換到 [Dynamic Discovery] 分頁,準備新增 iSCSI 網路位址。

7. 輸入 iSCSI 伺服器網路位址(IP 或 Domain Name)以及 Port

由於 iSCSI 網路儲存裝置已經設定為 LACP ( Link Aggregation Control Protocol) 或稱 Port Trunking 集合四張網路介面卡來增加頻寬,在本節一開始有稍微描述到這狀況。以下圖為範例:192.168.1.111 以及 192.168.2.111 為控制器對外的網路位址,而其硬體有四個;但是可以看到 [Static Discovery] 分頁出現兩個不同的路徑分別是(dev0.ctr1與dev1.ctr1以及dev0.ctr2與dev1.ctr2)是一個多重路徑的狀況。Windows Server 2008 如何支援 MPIO 請參考。另外 LACP 的設定實體的網路交換設備 Switch 也要設定,也就是說外掛的儲存裝置,交換器,ESXi 主機都要調校。


8. 設定完成後,可以看到 iSCSI 網路硬碟已經成功掛載。容量 9TB 是藉由廠商提供的管理介面手動設定調配給 VMware 虛擬化服務的空間,並非 VMware 只能掛載 iSCSI 之容量上限或下限。機櫃的網路儲存最大可達 32TB,扣掉做 RAID 6, 1 Global Spare 亦可達到 26 TB左右。 
特別要注意的是網路設定很有可能會造成 vCenter 與 ESXi 主機網路斷線,此時到 ESXi 主機重新設定網路即可,在回來小心的繼續設定網路。

VMware 提供的私有雲服務,搭配該機櫃掛載的網路配置,順利的話除了可以達到軟體的負載平衡之外,也可以讓所有的 VM 服務資源共享,且具有多重路徑故障切換的功能,若其中一台實體 ESXi 主機當機或是損毀時,另一台備援主機底下的 VM 可以馬上接手,並且資料因為存放在 iSCSI 中並不會遺失,iSCSI 硬碟的部份亦用 RAID 6 提高容錯能力,或許網路管理人員可以在考慮異地備援等其他議題來提供更完整的雲端服務。

參考來源

[1. ] VMware ESXi 5 安裝設定
[2. ] VMware MPIO