2014年9月29日 星期一

Windows出現 檔案目錄已毀損 故障排除

關於Windows出現 檔案目錄已毀損 一事

如果曾經遇到檔案目錄已毀損不能夠進行資料庫刪除或寫入時,請按以下步驟排除:

執行->chkdsk c: /f
並在下次開機時執行硬碟磁區掃描確認工作與重建目錄

這樣做之後就能夠正常存取該目錄資源了
請注意!如果遇到系統無法刪除或是無法安裝應用程式時,也可以嘗試上述作法,重新檢核硬碟的目錄是否沒問題。

2014年9月26日 星期五

虛擬化的除錯(Troubleshooting)和規劃評估


今天來談談不一樣的領域 虛擬化的除錯(Troubleshooting)和規劃評估,眼下不可能說只懂網路,其他系統類技術都放生,這樣你一定會被老闆視為不及格。現在一台沒有辦法連網的伺服器已經不存在了,因為沒辦法連上網路的伺服器,代表它無法提供任何服務,沒有產出價值。所以你也不可能只懂系統,網路一概不管…。

虛擬化過後,實虛對應非常重要,網路跟系統跟是無法分家的。不管是ESXi(VMware家族)XenServer(Citrix家族)Hyper-V(Microsoft家族),都沒有辦法說架設一台沒有網路卡的虛擬化平台,所以各家的虛擬化底層都被要求要有支援的網卡,而且最好不只一張。

昨天晚上,我的好友問我,

我覺得我公司系統上的載台Guest OS回應速度慢,我懷疑有可能是NAT或是網路設備端點有問題,但是內連外很快、外連內很慢,這有可能是甚麼問題? 

首先,這問題很複雜…,而且答案可能是多重解。



第一、 釐清速度慢的原因


User、老闆都沒有你懂,他們很可能只能提供給你情況,而不知道細節…。

User最喜歡說,
”我覺得我網路好慢,你能不能想辦法讓他快點…”
”我時常連不上我要的服務…”

慢可能有很多種原因,User ClientServer,可以一步一步來看:

1.     是不是User電腦本身就慢?這點很簡單可以驗證,如果他隔壁鄰居用感覺沒有特別慢或是還算快速,就表示這問題癥結點出在Client PC。代表你有可能要幫他掃毒、清除電腦上垃圾、清出記憶體和CPU資源…。

2.     端點到端點,慢在哪一段?一台組織內設備要連網存取外部網路或內部伺服器,一定穿越不只一台網路設備,如果同一段網路的8-9成使用者都反應網路慢,可以推測可能這一段網路到外部或到伺服器的Farm有問題。可以先嘗試Pathping, Tracert這兩個指令去檢測各端點的Response Time是否符合預期,如果某端點有嚴重延遲,或是封包遺失率很高,不排除就是該端點造成的問題,後續你就可以檢查那台設備的狀態,例如:燈號、Port、封包交換情況。

3.     連不上,有沒有可能是Session數不夠?這可以在伺服器端作檢視。尤其某一些File System,他連線還沒Timeout前,Session(工作階段)都還會儲存在Server上,你可以寫BAT去定時執行踢人這動作,或者是修改機碼參數等,讓伺服器把Timeout時間縮短,我曾經幫國科會的Share File伺服器做過類似的設定,以避免有大量User跟你反應我連不上檔案伺服器這種鳥事。當然,如果是網路設備的Seesion數不夠,你就有可能要更換或是考慮新增網路設備,但是老闆通常會要求你拿出數據來證實這件事,每一家網路設備看Session數的方式不同,最好先看一下Tool跟指令怎麼下,撈出點數據好跟老闆要錢。

4.     有沒有可能是頻寬不夠?我會建議各位監測主要端口的網路流量,不管你要用軟體來做,還是要用程式固定去跑指令幫你撈報表,這些都可以。不過網路流量監測在重要伺服器跟重點網路設備上很重要,國科會用來監測網路流量的軟體是Whatsup。頻寬不夠,優先考慮使用Teaming來解決(檢查網路跟伺服器是否支援IEEE 802.3ad),把實體線路頻寬綁一綁讓頻寬變高;如果不支援此項作法,請考慮購入一台有此功能的網路設備或Server

5.     有沒有可能是虛擬化後的伺服器不夠快?這也是有可能的,虛擬化後,我會建議各位保持定時監看虛擬化後的CPU跟記憶體使用量,如果伺服器顛峰期間的使用量超過七成以上,你就要考慮幫虛擬機配給更多的vCPURAM空間。

6.     有沒有可能是DatabaseStorage的問題?這個問題,很多不是SI界的人會不知道。資料庫不建議做虛擬化,你的SQL Server可以使用虛擬機,但是你的儲存空間一定得是實體機。為什麼?因為虛擬機沒有辦法讓RAID Card優先處理Database的讀取跟寫入,IOPS(Input/Output Per Second)會被一堆亂七八糟不重要的工作瓜分掉。還有一個方法就是把整櫃的HD換成SSD;或者是額外多買幾顆SSD來當HD Cache,這方法也是可以的,但是如果公司是處理Big Data的,恐怕就不適合。國科會沒有任何一台DB是虛擬機,連測試機DB都是汰換下來的ServerPC來做。

7.     監控DB我也曾經遇到DB容量已經額滿的問題(硬碟空間剩下5-10%就要處理了,剩下2%就等著服務停止),所以即時監控DB容量是絕對必要的事情,別讓User反應資料表無法送出讓DBA跳腳,這工作是必要的一環。國科會還有同步監測DBDeadlock,如果DB產生Deadlock,請儘速通知該DBDBA來處理。關於這點,由於本人會寫Code,如果你懂SQL,應該要據以力爭別讓Programmer下一些大量運算的SQL語法,搞死DBA同時弄死你的DB,什麼加減乘除四則運算都讓DB算…,你要跟PMProgrammer溝通,運算這件事情應該回到程式內去解決,必要時巴結一下社交手段也是很重要的…。順便提一下,像是中鋼這種DB2規模大小的公司,甚至連Select *這樣開頭的SQL語法都無法被接受,每一筆資料有上百欄位,你下Select *抱歉!資料庫很可能完全不會鳥你。

8.     釐清是哪一種服務慢,如果是所有服務都慢,有可能是整個虛擬機或是實體的問題,但如果只有特定服務慢,你就必須檢查該服務是不是很重視即時回應(Real-time Service),例如網路電話,這種僅能支持低延遲的服務。如果是這類型的服務,你必須要流量穿越網路設備時給予較高的Priority,甚至是作QoS來保障服務的頻寬跟品質。

第二、檢查你的網路工作排程


不要讓那些會使用到網路顛峰流量的工作在一般上班時間被執行,尤其是網路備份或資料庫搬移之類的工作。還有,同時也要阻止你的User做這些事情,不要讓他們有機會在上班時間傳輸大量的多媒體資料或者是透過網路交換HD 1080P的片子、使用BT下載等,不然網路不慢才有問題。

第三、從架構著手嘗試改善網路速度,降低網路hop


這會是一個相對浩大的工程,如果你知道瓶頸頻寬卡在某條主幹上,那這個會是你最後的解答。網路線換成光纖,確保光纖通道上的設備有支援光纖連接跟1Gbps的網路連接埠,讓端點到端點的實體速度變快,必要時搭配LCAP(IEEE 802.3ad)來做。國科會就曾經將主幹頻寬擴增一倍,只是這個工程施工必須要公告並且挑離峰時間來做,服務會有中斷。

第四、停止不必要的監控


上述講到很多監控很重要,但是要細分還是排得出重要性,測試機可以不考慮監控,Production或重要的應用服務一定要監控,例如:AD服務跟DNS服務是否存活、DB容量、重要端點網路流量。不管你監控了些甚麼,越接近即時監控的服務就越吃網路的頻寬,監控越多項目就代表你網路效能會有很大一部分被監控給吃掉,而這些監控是沒有產出的;”他們正常是應該,它們不正常是活該…”,老闆認知通常是這樣,所以請拿捏好分寸。同時配合監控的項目還有警告或警報系統,你可以擬定一些規則出來,例如:某些伺服器或服務中止發出手機簡訊或EmailDB容量低於10%通知DBAMIS…諸如此類工作。

第五、任何的採購或設計優先考慮HA(High Availability)


在導入任何軟硬體之前,先想想沒有他會不會怎樣?很多MIS在購入時,只考慮了”有了他超方便,我很爽”就買進來了,不會考慮如果”沒有他,會不會想要跳江?” 架構跟規劃關係著公司存亡的,更要好好考慮,服務有沒有需要Cluster(叢集)、有沒有Failover(容錯移轉)的機制、有沒有負載平衡(Load Balance)的機制,如果上述都沒有,最糟糕的情況下 Service Recovery要多久時間?這些都要先計算,如果這服務無關存亡也就算了,關係生死存亡的我建議你最好買雙保險甚至是三保險(例如:DNS服務)DNS有多重要?國科會曾經因為DNS查詢錯誤,導致停擺某些網頁不只三天時間,如果你公司網頁也能接受停擺三天…;就像是馬雲能不能接受淘寶停止服務一小時?先問看看公司接受度,再問看看自己管理上有沒有問題。

不要盲從追求最新的技術,很多東西一出市場,別說HA了,連Reliability(可靠度)都備受質疑,這些東西在評估階段就要否決,不要高層心血來潮,你就捨命陪君子…,最好寫一篇報告告訴他,你為何”現階段”拒絕這樣的東西導入公司。

2014年9月22日 星期一

公司的LAB環境架設


這圖,是我在公司自己架設的實驗Lab,從無到有自己生出來的測試機,硬體、軟體、網路、應用程式跟運行。
間接證實了家用主機也能拿來做VMware底層的ESXi Server的架設,但是需要注意以下幾點事項:
1.      網卡有無支援
2.      記憶體空間是否足夠
3.      CPU運算與硬碟空間

第一點最為重要,如果網卡不支援,就需要找一張可以支援VMWare ESXi的網路卡,於是在多方評估過後我入手了一張近三千的網路卡,型號為Intel Gigabit Dual Port i350-T2 PCIe i350T2BLK,這張確定可以完整支援所有VMWare所提供的功能,包含可以跟Switch間做Teaming,關於ESXi是否有支援您的網卡,可以到VMWare官方網站查詢。

第二點,要同時執行多少Guest OSESXi上,只計算要同時開機的數量,每一台Windows Server 2008需要至少4GBRAM(Win 7也差不多是這個量),於是初步計算我需要至少執行4Guest OS,這樣得出需要16GBRAM,於是我需要添購兩條8GB速度夠快的記憶體,多方考量後,入手了KHX24C11T3K2/16X,金士頓16GB DDR3-2400桌上型電腦 8G*2支裝記憶體,這部分支出最多,超過五千。

第三點,事實上硬碟空間如果只是執行模擬,不需要太多的硬碟空間,重點是當你在執行Guest OS安裝時,記得將硬碟空間選為Thin Provisioning,這樣就能省下非常大的硬碟用量,當然,並不是要執行高速的資料存儲,所以不需要高轉速的硬碟或是SSD,如果要模擬大量資料匯入或是寫入硬碟,硬碟的IOPS(Input/Output Operations Per Second)就相對重要。關於CPU速度,以我目前的同時執行四個Guest OS來說,用I7 3770K來說,綽綽有餘,這點可以從vSphare Client上的摘要以及效能兩個主要頁籤上看得出來,大多數時間CPU用量不到兩成,而僅在同時開機顛峰期間可以到5成以上。

以上幾點印證了幾件事情,頂級家機的硬體不會比伺服器等級的差,只是少了HA跟容錯機制,如果硬碟方面要做到需要額外的RAID Card或是Storage,也要購買額外的網路卡,但是電源部分就無法用雙PowerHA,沒有可熱抽換(Hot Swap)的機制,也就是一定會有Downtime(停工時間)

*ESXi在還有Guest OS運作時,沒辦法進入維護模式,僅有在進入維護模式後,才能夠停機(關閉電源)。當然,ESXi底層相對穩定,幾乎沒有當機的情況。



2014年9月19日 星期五

去友聲電子進行網路基礎教學


有幸應張弘毅老師的邀約去友聲電子進行網路基礎概念的教學,由於他們公司尚無完善的網路基礎建設和伺服器相關的概念,所以就決定從OSI模型和TCP/IP架構先開始講起,過程當中輔助一些必要的操作Demo讓大家理解網路指令和參數的作用,仍然是一次相當寶貴的經驗。

我認為上台需要練習自己的口條和台風,還有回答問題的技術,這些都是比台上講述專業技術更需要學問的地方,每次報告完畢都必須從頭省視這是報告的缺陷,時間的掌控、大家的理解程度,是不是符合與會者們的期待,這點很重要。

有些部分的說明還踏出了原本預期的範圍,我額外解釋了RAID和伺服器部分的容錯機制,希望他們將來能夠朝著這一部分來做努力。RAID 0、RAID 1、RAID 0+1、RAID 5這些比較重要並且常用到的機制。我儘量將技術面講得淺白易懂,讓大家都能夠理解這些技術的用途和作法,並且在短時間內講述了絕大數的網路技術、硬體、軟體和應用面。

互動式的講課,我覺得是比較不會無趣的演講方式,才不會只有單向的交流、雙向的交叉提問,可以有助於自己釐清所講述的議題。期許自己有朝一日也能當個合格的講師。

當日簡報檔案

2014年7月15日 星期二

關於瀏覽器(Browser) 的選擇


三年前,我剛成為社會新鮮人時的第一份工作在寫Code,那時候只認同火狐,因為火狐(Firefox)效能最好,而且有最多的元件可以選擇,將瀏覽器變身成為一項強大的工具,而不僅僅是瀏覽器。

其中最重要的是火狐的Plug-in和Add-on的增強工具,Firebug是被我選為寫code必備的神器,它可以協助工程師去進行很多程式碼跟網頁呈現技術上的除錯,包含CSS和HTML的部分。其他的像是書簽整合和同步工具、阻擋彈跳視窗和自動撥放音樂、懶人手勢、翻譯工具等等Plug-in和Add-on都替火狐增色了不少,儘管以現在的眼光來看,火狐的市占率已經不同以往,落後給Google Chrome很多,但仍有其難以被取代的部分,由其對於一個資訊人來說,這也是為什麼資訊人會推崇火狐的原因。

但是火狐也有為人所詬病的缺點,現是火狐過於吃資源,火狐在運作上需要處理非常多的額外資訊,尤其是裝了一堆Tools之後,CPU和Memory通常會消耗掉很大一部分在維繫火狐的運作上,因此火狐在長時間的執行下是必須定期重新開啟的。

如果現階段要我替一般電腦使用者選擇瀏覽器,我會推薦Google的Chrome,它代表了精簡和強悍,而且絕大多數的常用功能都涵蓋,並且與許多Google的Network Service都有高度的整合和相容性,絕大多數的安全性修補速度也優於Firefox和IE。

最不推薦的瀏覽器就是IE,不管是哪個版本,由於IE是Windows核心運作的重要程式,所以IE只要損壞或當機,對於Windows的作業系統來說會產生高度的不穩定甚至是死機,早期的Windows IE一旦當機,連帶著就是Windows的藍底白字。再加上IE的安全性修補是所有瀏覽器裡面最差的,而且安全性漏洞會導致作業系統不穩,如果加上中毒和中木馬的風險,這根本就不適合被用來當作日常的瀏覽器。

不過IE的存在仍有其必要性,很多政府網站和銀行業的網頁驗證開發僅高度支持IE,其它瀏覽器可能會有ASP.NET支援上的不足,或是相容性不夠無法呈現正確的訊息,甚至是排版上出現亂碼都有可能,因此IE唯一的用途就是進行網路銀行、網路ATM、自然人憑證交稅、健保卡資訊查詢時的最佳幫手。不過,我會建議一般使用者避免長時間使用IE,因為很多不良的網頁操作習慣都會使IE和Windows暴露在高風險的網路環境下。

目前本網站也大力支持使用Chrome來瀏覽,一樣可以達到最佳的效果。IE並非效果不好,而是IE不適合拿來當主要的瀏覽器長時間使用。

2014年6月30日 星期一

業務面與工程面的不同


由於工作需要,半兼了業務的職司,了解到業務領域的知識;目前比較像是PM(Project Manager)


第一、報價單的學問:業務需要知道垂直間的整合,而不只僅僅是水平間的
比如說,你要向你的上游去確認目前的售價,可以取得的利潤空間,按客戶層級給予適當折扣的報價,也藉由此事知道了軟體間的利潤。
並且向供應者去確認其他競爭業者是否有來詢價,這事件重要的事;但小型的案件可能會略過此步驟,因為價格的可議價空間較小。

第二、顧客的誠信:通常決定了可接受的付款方式
如果一間很有誠信,而且有多次交易的信用紀錄公司,可以選擇月結六十日的付款項目,也或許是支票付款或信用付款。
一間初次交易的公司,很有可能僅僅得到交貨付款的付款方式,且只接受現金或是帳戶匯款。
沒有信用的公司可能就只有一次的成交機會,因為下一次的生意有極高可能會被打槍。

第三、拓展業務圈:靠這同業廣播
由於資訊在南部傳統產業裡面,可視性並不是那麼高,與台北的科技代工廠相比也相對沒有這麼好的視野,很容易被忽略重要性。
而靠著同業的"吃好道相報"可以拓展相同領域產業的視野,相信對於業務面上來說是有幫助的。

客戶聯繫跟保持良好的互動關係,以及經年的客戶經驗往來是很重要的一部分。

當然之後還會有專案管理、時程控管、客戶問題排除、社交應酬等等...,所以值得學習得部分還是蠻多的。

2014年6月11日 星期三

淺談網路


4G 的時代要來臨了,物聯網時代腳步也更近了。今天來跟大家簡單的聊聊網路。
每一個能上網的介面一定有MAC位址;每一台裝置一定要拿到IP才能上網,這是大原則。
每一個應用程式在執行的時候一定會有個連接埠號,沒有就表示他不是個網路應用程式。

舉例說明
MAC位址就像是你家實際上的地理位置,這個地方除了地震以外應該是不會有任何變動的,如果像是我們者種網路管理者一樣可以變動這個位址,但是一般使用上千萬別擅自改動這位址。
IP位址就像是你家土地和房屋權狀上寫的地址,這是個相對位置(邏輯位址),因為路名有可能會更動。
Port號就像是所在的樓層,每一個應用程式被開啟時,就會開啟一個連接埠,這個連接埠代表了這隻應用程式的網路位址;而當你每開啟一個應用程式就可以想像你多蓋了一個樓層的房子。

所以今天有筆資料要送出,你一定會寫地址在哪,這時候你就會填上對方的 IP + Port號,這在網路上有個專有名詞叫做 Socket(插座)。
今天一個連線被建立在用戶端和伺服端,一定在兩邊都會有各自的 Socket(插座),而這個 Socket 也同時代表了該應用程式再網路上的識別。

如果你要擋住他們之間連線,你可以擋IP,也可以擋Port。擋IP可能是個網段,就像你讓那條街的人都不能通過你設的交管;擋 Port 的話就像是,你讓某個特定樓層的人不能通過你設的交管,不管是哪一個地址。
當然,實際運作起來更複雜,因為可以封鎖特定位址來的,或是要去特定位址的,或者針對某一個特定應用程式的。

接下來講到頻寬,頻寬就像是一條馬路上的線道,頻寬越大,線道越多,你可以空著這些頻寬不用,當然也可以限制頻寬,或者保留頻寬給特對服務對象,例如交通警察可以把某一線封掉只給某大官員使用。
流量,不管車子有多少,馬路就這麼寬,車多一定會塞,網路也是一樣,網路上的車叫做封包,當這些封包延遲太久到不了目的的時候,就會被十字路口的交警給遺棄。
網路十字路口的交通警察就是路由器,它會告訴封包要往哪去,或是把過期的、找不到方向的封包給丟棄。

網路也像是水流,當你的設備有支援1Gbps,你可以把設備看做水龍頭,而網路線看做水管,在兩邊連接起來的時候,水流速一定是取最小值,雖然設備有支援1Gbps但是你網路線只有支援100Mbps,那最大流速就是100Mbps不可能更快;這就像是水龍頭很大問題是水管很細,流量會受限在水管上。
任何的網路設備都是節流閥,也就是不可能在穿越的時候沒有衰減,因為物理特性的關係,一定會有所謂的封包穿越率問題,沒有任何一家設備保證100%無損封包(100%穿越)是完全不可能的事,你可以想像每經過一次網路設備就會有部分的水被漏掉。

當你一項裝置可以透過不只一種方式上網的時候(有線、Wifi、3G、4G、藍芽...),請注意,無論如何該裝置都只會使用其中一種方式上網,不會有頻寬被加總的情況,那是說來騙鬼的謊言。
某蘋果新聞報導 4G+wifi 可以用到兩倍頻寬,這肯定是假的;我這樣說好了,任何網路服務或應用都不可能會橫跨在兩個IP之間(兩個不一樣的地址),就像郵差不會將兩個不同的地址視為是同一個人。