vmware nested ESXi

ESXi 5 開始支援在 vm 裡面跑 vm 只是在新增 vm 的時候 OS 沒有辦法選 ESXi,只能在修改的時候才改 OS type,這個選項會影響到 vm 內 cpu 的支援,一定要改成 ESXi 才能在裡面跑 vm。

1.
先要把 vSphere host 的此檔案增加一行
/etc/vmware/config
vhv.allow = “TRUE”
2.
CLUSTER 的 EVC 好像會有影響,不太確定為了避免先關閉
disable EVC
3.
HOST 重開機
4.
建立 VM,建立完以後再從設定把 OS 改成 ESXi,如下圖

5.
在 vm 內輸入 kvm-ok 說你現在是在正確的狀態,否則就是上述幾點有地方需要再確認,在 vm 內安裝作業系統例如 ubuntu,裝 qemu、kvm、libvirt-bin、virt-manager

6.
用 virt-manger 安裝 nested-vm ,這邊要注意的是放入光碟後可能不會很順利的進入安裝畫面,cpu 會滿載而且畫面一直黑掉沒反應,要一直持續亂按 enter 就會進去安裝畫面了…。會讓人以為壞掉的慘況如下~

7.
用 bridge 把 KVM 網路設好以後網路還是有問題,nested-vm 會沒辦法上網。現象是當 nested-vm 發出廣播,目標主機回應的封包沒辦法透過 vmware 進到 nested-vm 裡面,應該是 vmware vswitch 設計上沒有考量到這種現象,可能他不是單純的 learning swtich。所以把 vmware 的 vm 網卡所在的 port group 改成 promisc~就可以運作了~只是 host 的封包就會流竄到 vswitch 內了。

參考
http://www.vpsee.com/2012/02/how-to-run-kvm-nested-vms-on-vmware-esxi/ – how-to-run-kvm-nested-vms-on-vmware-esxi
http://communities.vmware.com/message/2021380 – ESXi 5 and nested VM’s
http://communities.vmware.com/community/vmtn/bestpractices/nested – 官方討論

gnuplot 4.6 example

# 輸出成檔案
set terminal png size 600,400 medium
# 檔名 plot.png
set output "plot.png"
# x 軸標題
set xlabel "Response Time (s)"
# y 軸標題
set ylabel "Cumulative Fraction"
# 圖片標題
set title "mlwmlw.org"
# 顯示格線
set grid
# 線的類型 pointtype
# 點顯示的間距 pointinterval
# 點的大小 pointsize
plot cos(x) with linespoints pt 8 pi -3 ps 0.5 title "a",cos(x-.8) with linespoints pointtype 4 pointinterval -3 pointsize 0.5 title "b"

gnuplot online,線上測試的網站,要注意為什麼特別強調4.6,因為 pointinterval 是最新幾個版本才有的參數,像這個網站就不支援這樣下。

中文

如果在 Linux cli 下要印出中文字,需要設定字型參數,可以用 fc-list 去查詢系統目前有哪些字型,例如

$ fc-list
..
Fixed:style=Regular
文鼎PL細上海宋Uni,AR PL ShanHeiSun Uni,文鼎PL细上海宋Uni:style=Regular
Luxi Sans:style=Bold Oblique
..

  然後就能把這字型設定到 gnuplot 裡面,可以參考鳥哥 fc-cache 來知道怎麼更新字體,用 fc-list : file 可以查詢字型放置的資料夾,可以從 window 抓一些到 Linux 再更新。例如在 CentOS 是在 /usr/share/fonts 裡面,目前測起來有些中文字體,用 gnuplot 畫出來以後中英字距怪怪的,微軟中黑體看起來還可以。

例如參考 fc-list 印出來的英文字型名稱,選擇文鼎細上海宋體的語法為:

set terminal png size 600,400 font "AR PL ShanHeiSun Uni,12"

附上微軟中黑體的範例

gnuplot 也有一個指令可以查詢字型的資料夾

 gnuplot> show fontpath
        fontpath is
        system fontpath is "/usr/X11R6/lib/X11/fonts/Type1" "/usr/X11R6/lib/X11/fonts/truetype"

links :
官方 demo 文件,關於線的樣式

VMware vCenter Storage Monitoring Service failed

環境是 vSphere 5 與 VMware vCenter Server Appliance,監控 storage 的服務是 VMware vCenter Storage Monitoring Service 縮寫是 sms。

今天發現從 vCenter Service Status sms 一直 failed,也可以從 vCenter 的這個網址檢查是不是健康 https://vcenter/sms/health.xml。造成跟硬碟效能監控有關的圖都跑不出來,嚴重影響我的測試,十分不悅。

結果去 /var/log/vmware/vpx/sms.log 裡面看到如下的錯誤:

— Cause: org.h2.jdbc.JdbcSQLException: NULL not allowed for column “ENTITYID”; SQL statement:
INSERT INTO scsiTarget ( entityId, wwn, portWwn, nodeWwn, iscsiName, iscsiAlias, type, vendor
) VALUES ( ?, ?, ?, ?, ?, ?, ?, ? ) [90006-147]
at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate(GeneralStatement.java:91)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.insert(SqlMapExecutorDelegate.java:447)
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.insert(SqlMapSessionImpl.java:82)
at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.insert(SqlMapClientImpl.java:59)
at com.vmware.vim.sms.provider.VcProviderImpl.populateScsiTargets(VcProviderImpl.java:849)
at com.vmware.vim.sms.provider.VcProviderImpl.access$300(VcProviderImpl.java:41)
at com.vmware.vim.sms.provider.VcProviderImpl$PopulateStorageInfoTask.run(VcProviderImpl.java:3006)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)

十分不悅 again..,是 vCenter 的 bug = =?

好險找到這篇文章最後一個回答是解答,這個表裡面有一筆 NULL 的資料因此出了問題。所以找個軟體來連進去資料庫,我這環境是用 oracle,Client 是用 Navicat Premium 登入 Oracle,按照順序檢查有沒有這筆空資料,有的話就刪除。

select * from VPX_PSA_TARGET_TRANSPORT where ISCSI_NAME is NULL AND VPX_TYPE=’vim.host.InternetScsiTargetTransport’;

delete from VPX_PSA_TARGET_TRANSPORT where ISCSI_NAME is NULL AND VPX_TYPE=’vim.host.InternetScsiTargetTransport’;

接著重開 ESXi Service 他就復活拉拉拉阿~~~~~