Vista 下安裝 Vs 2005

最近在 Vista 下安裝 Vs 2005,遇到一個非常困難的問題,安裝過程居然提示需要先安裝 XP SP2,而且提示中沒有繼續安裝,只有退出安裝過程可選。

在GOOGLE相關搜尋網站都沒有找到解決方案,偶然搜索到可以把VS 2005 SP1合集到VS 2005安裝程序中,經過摸索與ONENET魔力小子我的測試,終於成功製作了包含VS 2005 SP1的VS 2005安裝程式,通過它成功地在虛擬VISTA中安裝上VS 2005,雖然安裝過程花了我超過1個多小時。
簡述如下(步驟基本上與網上的一些類似,只是加上了一些註釋和修改了自己實際處理過程中發現的問題點):
1. 準備一個剩餘空間大於 5 GB的磁碟分區,在下面新建目錄:vsts\vs
2. 準備VS2005安裝光碟、VS 2005 SP1修正程式
3. 編輯一個批處理文件(.bat)文件,文件內容如下:
set VSMSI=G:\vs\vs_setup.msi
set SSMSI=E:\vsts\vs
set SPEXE="E:\SoftWare\Setup\Developer\VS80sp1-KB926604-X86-CHS.exe"
set SPMSP="%tmp%\VS80sp1-KB926604-X86-CHS.msp"
set ILOG=E:\vsts\install.log
set PLOG=E:\vsts\patch.log
 
msiexec.exe /a %VSMSI% TARGETDIR=%SSMSI% /L*vx %ILOG%
%SPEXE% /extract "%tmp%"
msiexec.exe /a %SSMSI%\vs_setup.msi /p %SPMSP% /L*vx %PLOG%
說明:
G:\v\vs_setup.mis 指向 VS 2005 安裝程序文件(VS 2005安裝光碟);
E:\vsts\vs指向步驟1中建立的目錄
E:\SoftWare\Setup\Developer\VS80sp1-KB926604-X86-CHS.exe指同VS 2005 SP1安裝文件
VS80sp1-KB926604-X86-CHS.msp為VS 2005 SP1安裝程序中的msp文件名(可用WINRAR之類的軟件打開查看)
E:\vsts\install.log和E:\vsts\patch.log為合併處理過程中用的的日誌文件,需要先建立這兩個空文件(可以用記事本);不建立的話,處理過程會提示找不到該文件(我在VISTA下有此提示,但之前搜索到的資料中沒有這個說明)
批處理(.bat)文件中最後三條命令完成SP1集成處理,依次為:解壓安裝包、解壓補丁包、集成SP1到安裝程序文件
4. 執行步驟3的批處理(.bat)文件。這個過程會比較久,需要耐心等待(我好像做了2個多小時)
5. 從VS2005安裝光盤的VS目錄下複製*.cab外的所有文件和目錄到步驟1建立的目錄中(我的示例中用的是E:\vsts\vs。特別注意,如果提示覆蓋文件,選擇跳過(否則就前功盡棄了)
6. 經過上述處理,SP1就合成好了。如果有需要,可以將其做成光碟。
7. 註:"%tmp%\VS80sp1-KB926604-X86-CHS.msp"這個文件可以在完成上述步驟後手工刪除,或者將刪除此文件包含在步驟3的批處理文件中。
安裝經驗
安裝過程與標準安裝無異,唯一值得ONENET魔力小子一提的是速度與標準安裝不相上下,這樣就可以解決掉無法在VISTA下安裝的問題,以減少了安裝SP1的步驟和節省了時間。
最後最後的小提醒,在VISTA下使用別忘了再安裝針對VISTA的修補程式。

 

 

Windows Server網路負載平衡

Windows Server網路負載平衡

neo_lin_42 | 08 Sep, 2006 15:24

Windows Server叢集(cluster)技術是以三層式應用程式的架構來設計的,每一層都有相對應的解決方案。例如,本文介紹的網路負載平衡(Network Load Balance,NLB)便是屬於前端的叢集技術,另外尚有屬於中介層的COM+元件負載平衡(Component Load Balance,CLB),以及後端服務的伺服器叢集(Microsoft Cluster Server,MSCS)。

在介紹NLB之前,先來了解一些與叢集有關的基本概念:什麼是叢集,以及使用叢集的好處。

叢集的基本概念

簡單來說,叢集是指一組伺服器,透過彼此的協同作業,提供一個相同的服務或應用程式,用於提升服務或應用程式的可用性(availability,註1)、可靠性(reliability,註2),以及延展性(scalability,註3)。當叢集內的伺服器掛了,請求會轉移給其他的伺服器,提供全年無休、一天24小時不中斷的服務。

Windows Server支援了三種叢集技術,分別是NLBCLBMSCS等,NLBMSCS已內建於Windows Server中, CLB則需要購買Application Center

這些叢集技術簡單說明如下:

  1. NLB,提供以TCP/IP 為基礎的服務與應用程式的網路流量負載平衡,用於提升系統的可用性和延展性。常見的應用有terminal serviceweb serviceweb application等。
    NLB
    是透過一個虛擬IP對外提供服務。當收到請求時,NLB會隨機決定由誰來處理請求。
  2. CLB,提供使用COM+元件的中介層應用程式的動態負載平衡,用於提升系統的可用性和延展性。CLB會依據目前的工作負載來決定由誰來處理服務請求。
  3. MSCS,提供後端服務與應用程式的容錯移轉(failover),可提升系統的可用性。常見的應用有SQL ServerExchange Server等。
    MSCS
    是由client來決定由誰來處理服務請求,所有伺服器共用一個share storage來儲存session狀態。當主動伺服器掛了,則繼續由被動伺服器接手。被動伺服器會從share storage取出session狀態,繼續未完成的工作,以達到容錯移轉的目的。

NLB的運作原理

Windows Server叢集有了基本的認識之後,接下來進一步了解NLB是如何將Client的服務請求分配給叢集內的伺服器,以分散服務請求的流量,使得負載不會集中在某一部伺服器上。NLB是使用篩選模式相似性演算法來分配服務請求。它又分成無相似性、單一相似性,以及class C等三種,簡單說明如下:

  1. 無相似性
    Client
    的服務請求會平均分配到叢集內的每一部伺服器。假設NLB叢集內有2部伺服器。當接到Client的請求時,NLB會將第1個請求交由第1部伺服器來處理,第2個請求交由第2部伺服器來處理,第3個請求交由第1部伺服器來處理,依此類推。因為所有Client連線會平均分配到每一部伺服器,因此可以達到最佳的負載平衡。如果需要執行交易楚理,為了能夠共享session狀態,則必須將session狀態集中儲存在statedatabase server中。這種方式適用於大部分的應用程式。
  2. 單一相似性
    Client
    的服務請求會固定分配到叢集內的某一部伺服器。當接到Client的請求時,NLB會根據Client IP來決定交由哪一部伺服器來楚理,也就是一部伺服器只會處理來自某些IP的請求。因為一個IP的服務請求只會固定由一個伺服器來處理,因此沒有session狀態共享的問題,但可能會導致負載不平衡。這種方式適用於連線需支援 SSL 集多重連線的通訊協定 ( 例如FTPPPTP)
  3. Class C與單一相似性類似,不同的是Class C是根據IPClass C遮罩來決定交由哪一部伺服器來楚理,也就是一部伺服器只會處理來自某些網段C的請求。這種方式可確保使用多重 Proxy 的用戶端能導向到相同的伺服器。

結論

在動手建立NLB之前,需要特別注意一些限制條件,例如伺服器的Private IP必須是固定,而且在相同的網段。若只有一張網卡,則叢集內伺服器之間無法互通,因此建議要有兩張網卡,一張網卡用於建立NLB,另一個網卡,則用於伺服器之間的heart beat,偵測叢集內伺服器是否正常運作。若是使用兩張網卡,則只能在其中一張網卡上設定default gateway,否則封包將無法轉送至正確的IP位址上。

NLB的基本概念簡單地介紹到這理,實作部份可利用Windows Server的網路負載平衡管理員或區域連線設定,詳細步驟請參閱"說明與支援"

1:可用性(availability)是指應用程式、服務或系統提供的服務等級。可用性高的系統很少停機 (無論是計劃的還是意外的停機)。可用性通常表示為服務或系統可用的時間百分比,例如,一年停機 8.75 小時之服務的可用性是 99.9%

2:可靠性(reliability)是指電腦系統或裝置在指定期間內或是指定條件下,可繼續運作的可能性。

3:延展性(scalability)是測量電腦、服務或應用程式可以擴充至何種程度以符合漸增之效能需求的一種方式。對於伺服器叢集而言,它是指叢集的整體負載超過其功能時,可持續為現存叢集新增一或多個系統的能力。a

分割表損毀,如何拯救硬碟資料?

電腦當機以後重開機,硬碟的資料就不見了,BIOS抓得到,可是就是無法使用,怎麼辦?

相信有許多人都有這種經驗:在Windows的環境下,電腦因為當機或者電力中斷,導致不正常關機,當重新啟動電腦時,Windows卻無法存取硬碟。這類的情況不外乎因為系統無法辨識硬碟,而出現磁碟尚未格式化,或者磁碟格式錯誤而無法辨識的情況,造成硬碟資料流失的問題。

造成硬碟出現這類故障情況的原因很多,其中有一種是因為硬碟的磁區分割表(Partition Table)損壞,導致硬碟無法存取。損壞的主要原因,通常是因為不正常的操作,例如電源不穩定或是病毒破壞。

面對磁區損毀這類問題時,我們可以使用FinalData、Easy Recovery Professional或Partition Table Doctor這類磁碟工具來協助我們解決這個問題。這三套軟體都是需要付費的商業軟體,但也可以免費下載試用版。試用版往往都有功能上的限制,像Easy Recover Professional及FinalData的試用版,就不提供修復資料的另存輸出,而Partition Table Doctor的試用版不提供針對修復工作的復原(Undo)功能。由於Partition Table Doctor的試用版提供了硬碟分割表修復功能,所以我們選擇它來解決問題。

Partition Table Doctor提供分割表修復、分割備份表、MBR修復等功能。

所有的硬碟工具均不能夠保證100%解決硬碟磁區分割表損毀的故障問題,所以建立良好的電腦使用習慣和備份重要資料,才能避免硬碟損壞導致資料遺失的風險。

要使用Partition Table Doctor的「修復磁碟分割表」功能,需要注意一件事;如果出現故障問題的硬碟是系統硬碟,無法開機使用修復工具時,就得先設法透過其他可正常開機運作的硬碟加入救援任務。

執行Partition Table Doctor後,會自動搜索目前電腦上面所有的硬碟。完成搜索後,Partition Table Doctor會顯示偵測到的硬碟及邏輯磁區分割圖、磁碟容量、磁碟標籤,並以不同的顏色區分各種檔案結構。

接著在下拉式選單的Harddisk項目中,切換到要修復分割表的實體磁碟上,然後點選工具列上面的重建分割表(Rebuild),Partition Table Doctor就會詢問使用者修復時,要透過自動模式(Automatic)或是使用對話模式(Interactive)。

使用自動模式時,Partition Table Doctor會略過搜尋磁區的階段,直接修復整個實體硬碟的分割表。而在對話模式下,Partition Table Doctor會預先搜尋選取的硬碟,列出可辨識的所有磁區及相關資訊,包括檔案系統、磁碟標籤、磁碟區段、容量等資訊,使用者可以依照自己的需要,再修復特定的邏輯磁碟區的分割表;如果硬碟內有Partition Table Doctor無法辨識的磁區,使用者可以取消這次的修復工作,重新搜尋硬碟,直到找出最完整的分割表,如此一來,就可以在這個步驟避免不當修復,防止硬碟內的資料損毀。

Partition Table Doctor也讓使用者檢視磁碟的根目錄(Root)。在分割修復表的步驟中,也能瀏覽根目錄。然而Partition Table Doctor只提供瀏覽磁碟的根目錄,不能如Easy Recovery Professional或FinalData那樣,完整顯示磁碟內檔案及資料夾的樹狀結構。引用–林郁翔

 

克服Windows基本磁碟2TB分割區上限問題

 

在Windows下建立大型磁碟分割區時,最多只能建立到2TB,即使不需要多個分割區,仍會被迫將磁碟陣列切割為多個分割區,才能充分利用容量,這是什麼原因?如何突破限制?

在Windows下以實體磁碟機建立基本磁碟時,是以分割(Partition)作為儲存與管理的單位,又分為主要分割與延伸分割,主要磁碟分割中可存放引導系統開機用的主開機紀錄,藉由MBR分區表(partition table)可啟動各個延伸分割,進而啟始作業系統。

但問題在於受定址能力所限, MBR分割表對應的分割容量上限為2TB,若實體磁碟的容量大於2TB,則必須分割為多個基本磁碟區。
這對只有1~2臺硬碟的一般單機應用環境來說問題不大,但在磁碟陣列應用上就會造成許多限制。考慮到現在的硬碟容量越來越大,單臺容量750GB與1TB的產品都已經上市,若使用這類硬碟建立磁碟陣列,只要用上2或3臺硬碟就會遭遇2TB上限問題。

動態磁碟
微軟後來在Windows 2000上增加了動態磁碟(Dynamic disks)的概念,可提供基本磁碟所沒有的功能。動態磁碟是以磁碟區(Volume)為管理單位,透過檔案系統之下的磁碟區管理器(Volume Manager),可建立跨越多個磁碟的磁碟區,如跨距或等量磁碟區;或是建立有容錯功能的磁碟區,如鏡像磁碟區與RAID 5 磁碟區。

動態磁碟雖能透過跨距或等量磁碟的方式實現2TB以上的磁碟區,但因為動態磁碟必須透過Volume Manager來執行磁碟區的管理與存取,因此系統存取動態磁碟時必須經過Volume Manager與檔案系統兩層的處理,以致有效能方面的問題。

GUID 磁碟分割
根本解決方式是提高作業系統對磁碟分割的定址能力,如微軟在Windows Server 2003新增的GUID 磁碟分割表(GUID Partition Table,GPT)。GPT分割表支援的磁碟區分割最大可達18 EB,每個磁碟最多可有128個磁碟分割,相較下傳統的MBR分割則分別只有2TB與4個分割。

但在實際環境中,作業系統支援GPT分割只是建立2TB以上磁碟區的必要條件之一,其他條件包括磁碟陣列控制器或主機板上內建的磁碟控制晶片必須支援大於2TB的Volume定址,且該控制器或控制晶片在Windows中的驅動程式也必須支援64位元的邏輯區塊定址(Logical Block Addressing,LBA)。文⊙張明德

限制儲存容量的因素

從最上層應用程式資料到儲存裝置,資料必須經過應用程式、作業系統、檔案系統、磁碟區管理器(Volume Manager)、儲存裝置驅動程式、儲存裝置等環節,任一環節都會影響到可用的儲存容量。

1. 不同版本作業系統的硬碟分割方式(Partition styles)支援的分割區容量不同。如MBR分割的分割區上限為2TB,GPT分割則可達到18EB。

2. 不同檔案系統支援的分割區大小不同,FAT16上限為2GB,FAT32為2TB,NTFS為16EB。

3. Volume Manager的作用是將對磁碟的存取轉換為對應的指令,對於ATA設備發送ATA指令;對SCSI設備則發送一個包含SCSI的指令,而SCSI Block Command指令中的LBA位址變數長度,將決定一個目標上的LUN所能存取的儲存空間。原來的SCSI指令集中的LBA為32位元,而硬碟每個區塊大小為512Bytes,2的32次方乘以512等於2TB,也就有2TB的限制。而在SCSI Block Command第二版中,LBA已擴展到64位元,因而突破了限制。

4. 儲存設備與儲存設備驅動程式方面,舊的IDE硬碟採用的CHS定址上限為512MB,後來改用28位元LBA就達到137GB。目前SATA與SCSI/SAS硬碟多使用48位元LBA定址,容量上限為137TB。

早先的限制主要出在硬碟的定址能力方面,後來改用48位元LBA後消除了這個限制,但作業系統分割方式、檔案系統與存取指令又成為瓶頸。在Windows導入GPT磁碟後,目前的瓶頸又回到磁碟LBA定址能力上,不過目前48位元LBA應該還能維持很長的時間。