none
HYPER-V是否可以達到"容錯且不停機"的需求呢??

    問題

  • 大家好:

      公司最近有個需求。前端有一台AP主機,上頭是APACHE+PHP,在處理資料時,會連線到後端的SQL2008資料庫進行運算。

      而需求是"不管AP或DB主機發生問題,備援機都要可以第一時間接手,且之前的因使用者連上來的操作導致的運算都必須還在"。

      而我想用以下的方式來解決此問題

    1. 會用到的主機有3台(SRV_A,SRV_B,SRV-C)。在SRV_A及SRV_B上啟用"叢集服務"及"HYPER-V服務"
    2. 在SRV-C上,則啟用"檔案共用"服務,主要是用來做ISCSI檔案分享用;同時,在SRV-C上會跑AD服務
    3. 在SRV_A新增GUEST_AP及GUEST_DB,並把檔案都放置在SRV-C上所分享出來的ISCSI磁區
    4. 使用者所連線的主機是GUEST_AP,使用的DB是GUEST_DB。

      以上是環境的大致描述

      若是做到這樣的話,請問可不可以達到公司給我的要求呢??

    2013年12月29日 上午 08:35

解答

  • 看到這個問題, 內心有點糾結要不要答..因為要達到要求好像並沒有那麼簡單

    你的要求是第一時間接手, 這個第一時間, 每個業務的定義不同, 究竟是5秒, 還是5分鐘,

    對系統投資的金錢分別很大, 在系統的設計上也有差別

    第二個要求是進行中的運算, 排程都要繼續進行, 很抱歉如果單獨以容錯轉移和原生的Hyper-V技術並不能做到這個效果.

    就算後台是一個iSCSI VHD, 另一個備援Hyper-V 主機都要把兩個虛擬機器重新啟動, 當中並不保證回復到之前執行中的數據.

    我粗略思考了一下, 如果配搭使用SQL AlwaysOn (SQL 2012以上), 跟最少兩個前端Apache+PHP配合Network Load-balancing方案(軟式或硬體), 也要在網站編程上做到每條交易都有記錄/複本等等的安排, 才能做到差不多"零損失"的效果. 其中技術要求真的挺高的...建議要找專門人員都為你們度身訂造一套解決方案.


    邊幫助, 邊鍛鍊


    2013年12月30日 上午 02:53
  • 如果前端是跑 Web 連接後端資料庫,
    其實可以考慮 Web 架兩台 VM 走 NLB,
    SQL 的部份架兩台 VM,分放兩台 A, B Host,
    兩台 SQL VM 組 Cluster。

    蘇老碎碎念
    資訊無涯,回頭已不見岸
    Facebook - 微軟台灣官方論壇愛好者俱樂部
    如何在論壇正確發問,請參考iThome的文章: 如何問到我要的答案

    2013年12月30日 上午 02:54
    版主

所有回覆

  • 您好,

    基本上您的架構可以達成,另外檔案共用也可以把它變成叢集更保險

    2013年12月30日 上午 02:10
  • 您好,

    基本上您的架構可以達成,另外檔案共用也可以把它變成叢集更保險

    謝謝你的回覆......那我現在就要開始準備相關的測試環境了~~

    至於你提到的"檔案共用"也叢集.........我再看看是否有足夠的設備讓我進行測試,因為手上目前是有3台主機可以使用,沒有.....第4台

    2013年12月30日 上午 02:20
  • 看到這個問題, 內心有點糾結要不要答..因為要達到要求好像並沒有那麼簡單

    你的要求是第一時間接手, 這個第一時間, 每個業務的定義不同, 究竟是5秒, 還是5分鐘,

    對系統投資的金錢分別很大, 在系統的設計上也有差別

    第二個要求是進行中的運算, 排程都要繼續進行, 很抱歉如果單獨以容錯轉移和原生的Hyper-V技術並不能做到這個效果.

    就算後台是一個iSCSI VHD, 另一個備援Hyper-V 主機都要把兩個虛擬機器重新啟動, 當中並不保證回復到之前執行中的數據.

    我粗略思考了一下, 如果配搭使用SQL AlwaysOn (SQL 2012以上), 跟最少兩個前端Apache+PHP配合Network Load-balancing方案(軟式或硬體), 也要在網站編程上做到每條交易都有記錄/複本等等的安排, 才能做到差不多"零損失"的效果. 其中技術要求真的挺高的...建議要找專門人員都為你們度身訂造一套解決方案.


    邊幫助, 邊鍛鍊


    2013年12月30日 上午 02:53
  • 如果前端是跑 Web 連接後端資料庫,
    其實可以考慮 Web 架兩台 VM 走 NLB,
    SQL 的部份架兩台 VM,分放兩台 A, B Host,
    兩台 SQL VM 組 Cluster。

    蘇老碎碎念
    資訊無涯,回頭已不見岸
    Facebook - 微軟台灣官方論壇愛好者俱樂部
    如何在論壇正確發問,請參考iThome的文章: 如何問到我要的答案

    2013年12月30日 上午 02:54
    版主
  • 您好,

           蘇老的建議不錯,這是較完整的解法。但可能也要考量到授權的成本考量。

    2013年12月30日 上午 03:10
  • 您好

    依照樓主您的想法,這樣您的機器只能做到host 保護,但是hyper-v 兩節點其中一個節點如果是無預警當機,雖然該節點中的VM會移轉至另外一台節點運作,但是VM會有重新啟動的現象,所以比較建議的做法是依照蘇老提供的作法


    2013年12月31日 上午 12:04
  • 看到這個問題, 內心有點糾結要不要答..因為要達到要求好像並沒有那麼簡單

    你的要求是第一時間接手, 這個第一時間, 每個業務的定義不同, 究竟是5秒, 還是5分鐘,

    對系統投資的金錢分別很大, 在系統的設計上也有差別

    第二個要求是進行中的運算, 排程都要繼續進行, 很抱歉如果單獨以容錯轉移和原生的Hyper-V技術並不能做到這個效果.

    就算後台是一個iSCSI VHD, 另一個備援Hyper-V 主機都要把兩個虛擬機器重新啟動, 當中並不保證回復到之前執行中的數據.

    我粗略思考了一下, 如果配搭使用SQL AlwaysOn (SQL 2012以上), 跟最少兩個前端Apache+PHP配合Network Load-balancing方案(軟式或硬體), 也要在網站編程上做到每條交易都有記錄/複本等等的安排, 才能做到差不多"零損失"的效果. 其中技術要求真的挺高的...建議要找專門人員都為你們度身訂造一套解決方案.


    邊幫助, 邊鍛鍊


    看來

    沒有想像中的簡單呀~~~~~

    我再去跟目前的廠商討論一下,看看有沒有什麼適合的解決方案!!!

    謝謝蘇老的回覆!!!

    2013年12月31日 上午 12:35
  • 大家好:

      而需求是"不管AP或DB主機發生問題,備援機都要可以第一時間接手,且之前的因使用者連上來的操作導致的運算都必須還在"。

    即使是SQL 2012 AlwaysON...沒有commit的資料也一樣會不見,只能從設計端減少損失,

    真正能做到session的完全備援就只有先知牌的DB,不過那個價錢也很驚人.

    2013年12月31日 上午 03:51