星期四, 11月 09, 2017

NFS datastore的優缺點

使用NFS datastore的優點:
  1. 可以用任何client去讀取資料,像我偶爾需要去修改 vmx 檔時,可以不用透過console用vi改,用Notepad++/Atom/Pluma去修改實在是一大樂事。
  2. 備份容易,可以用NAS/NFS provider上的備份機制,目前的NAS都有快照機制,也可以將快照備份到其他台NAS。我買一套Veeam Backup and Replication的$,就足夠買一座S牌或Q牌NAS做為備份用。
  3. 由於是File based,所以支援重複資料刪除(Deduplication)。使用iSCSI時Deduplication 的效率其實很差,雖然很多家都說是block level deduplication,其實效果有限。 不過若不是買NetApp這種等級的神器,還是不要輕易開啟,我曾經在Nexenta Store上開啟,效果非常不滿意,對效能影響甚鉅。
  4. 需要還原備份時很容易,可以快速掛載備份的vmdk取代原有的vmdk達成快速復原。
 使用NFS datastore的缺點:
  1.  只能用單一網路,沒有MPIO之類的機制。多埠合併都需要switch支援,不在討論之列。
  2. 使用NFS target的File System,不是VMFS,限制比較多。
  3. 效能不如iSCSI,原因就是以上兩點綜合。

結論:
需要極高速的datastore時,首選仍然是iSCSI,但若考慮到備份還原時,NFS 對於窮人也可以納入考量。

NFS datastore change IP address

摘錄自 Changing IP address of NFS Datastore
- Shut down all VMs (via the VIC)

- Put the server into maintenance mode:
# vimsh -n -e /hostsvc/maintenance_mode_enter

- For each datastore whose address has changed, delete the old, and re-add it with new address (and exact same label):
# esxcfg-nas -d <label>
# esxcfg-nas -a --host <new_name> --share <remote_nfs_share_path> <label>

- Mount the datastores
# esxcfg-nas -r
(this will fail if any datastore hosts are still unreachable, or will complete silently if all goes well)

- Bring the server out of maintenance mode:
# vimsh -n -e /hostsvc/maintenance_mode_exit

星期三, 11月 08, 2017

Mounting NFS datastores with different IP address one different ESXi Hosts 讓不同的ESXi host使用不同的IP掛載同一個NFS Target

I have a small vSphere environment, the NAS has 4 NIC ports, 3 ESXi client direct connect to NAS without switch/hub by different IPs. vCenter thake them as different NFS datastore, because of different UUIDs.
A UUID mismatch between two datastores occurs because the UUID is based on a hash of the NFS Server and Path, as seen by running esxcfg-nas. If you have specified the NFS server information using different methods on different hosts, then the hash value, and ultimately the UUIDs will be different.
我有一個小型的vSphere環境,其中1座4埠網路NAS和3台ESXi使用不同網段IP直接連接到NAS。但是vCenter認為它們是不同的NFS datastore,因為產生的hash和UUID不同,詳見 VMware KB1005930

星期三, 10月 25, 2017

資料庫的命名原則

資料庫/資料表的命名原則以言簡意賅為最高指導原則,因為以Programmer來說,能少打字就可以快點寫完。

星期二, 10月 24, 2017

Android Studio temp file過大

現在很多朋友和我一樣都改用SSD做為系統碟,一般的Windows程式只要改 TEMP 變數就好,在Linux就尷尬了, /tmp 遇到像Android Studio這種要把所有的Update都解開才開始安裝時,一次裝了60幾GB就會爆掉。

星期五, 8月 18, 2017

Nginx強制使用者改用https連結

今天收到股溝的警告:『Chrome 將在「http://www.fakesite.com」上顯示安全性警告』
所以我必須讓使用http的使用者自動改用https連結。

星期四, 5月 25, 2017

使用者更名後 User.Identity.Name 還是更名前名字

今天發生了非常奇怪的事情,有位員工的帳號更改,在某個Windows Server 2003的Asp.Net程式一直抓到他原來的名字,也就是使用 User.Identity.Name 一直是舊的資料。

星期五, 5月 19, 2017

資料庫欄位設計與正規化

我也沒想到,工作十幾年之後,居然還要寫這樣的題目。資料庫正規化設計,在21世紀的今天,應該早就是攻城獅(工程師)耳熟能詳的必備項目,沒想到還有人用20世紀的思維在設計,因此稍稍抒發小弟我不滿的情緒。

星期一, 5月 15, 2017

取消內部網路預設使用相容性檢視

最近MIS使用Vue.js開發,遇到發佈到伺服器後無法正常顯示,經過仔細Debug之後才發現,原來是Internet Explorer預設使用『相容性檢視』。

星期三, 4月 26, 2017

利用 Jenkins持續整合,自動產生Coverage報表

話說同事接了大案子,業主要求必須做單元測試,還要有涵蓋率。這不是很簡單的事嗎?問題就出在他們為了省經費,只用免費的Express版開發,幸好VS2015 Express全加上Unit Test,但是看不到Coverage了。
我自己也很久沒有用MSTest,多半用NUnit,利用VS的套件或TestDriven.Net Personal版就搞定,但是得讓同事方便,就裝台Jenkins Server。起初都還簡單,但是在產出報表時,照著網路上的步驟,怎麼也測不出來。

星期一, 4月 24, 2017

星期四, 1月 12, 2017

macOS 上ssh-copy-id還是會問 Enter passphrase for key

最近升級到macOS Sierra後,發現 ssh 到之前用ssh-copy-id 的機器,都會問 Enter passphrase for key 。