Laut 9

【vSphere HA】
vSphere HA必須在ESXi主機發生故障損壞事件時才會在HA Cluster中其他存活的ESXi主機將存放在共享儲存資源中的VM虛擬主機重新啟動

若是底層的ESXi主機並未發生故障損壞事件而是vCenter Server虛擬主機內本身所運作的服務停止的時候那麼vSphere HA高可用性機制是幫不上忙的。 (故可以靠Watchdog補足)

【Watchdog】(6.0以上才支援預設情況會自動啟用)
vCenter Server 6.0新增了「Watchdog」監控機制當運作的服務發生故障事件而停止運作前2次發生時Watchdog會嘗試重新啟動服務倘若第3次仍無法重新啟動服務便會將VM虛擬主機重新啟動

[Tautan referensi]

——
【VMware Data Recovery】
VMware Data Recovery(vDR)屬於Disk-based的備份方式具有簡單操作及容易部署的特性(因為它也是一台虛擬主機)支援Windows VSS(Volume Shadow Copy)備份方式也支援簡單的重複資料刪除功能(Data De-duplication)

但是此備份工具有如下的相關功能限制

·備份環境中必須具備vCenter Server才可使用此備份工具
·屬於Disk-based因此無法使用File Level或Block Level備份方式
·每台vDR僅能備份100台虛擬主機
·無法運作於IPv6網路環境上
·僅支援備份運作Windows作業系統(Windows 2000/XP/Vista/7Windows Server 2003/2008)的虛擬主機不支援其他作業系統如LinuxSolaris等虛擬主機

[Tautan referensi]

——
【VMware Fault Tolerance】
如果企業無法接受VMware HA機制啟動時虛擬主機有短暫的停機時間則VMware FT可能是一個解決的方案但是啟用VMware FT有許多先決條件例如該虛擬主機不能進行快照(Snapshot)無法使用Stoarge vMotion功能該虛擬主機只能使用一個vCPU等等條件限制

VMware FT機制會於2台不同的Host上分別建立Primary和Secondary虛擬主機並且採用vLockstep技術以ESX/ESXi Host上的VMkernel Port來傳送Primary虛擬主機的資料至Secondary虛擬主機上但是Secondary不會有實際I/O的寫入行為

當Primary虛擬主機所處的ESX/ESXi Host故障損壞時則Secondary虛擬主機會馬上接手相關作業並且成為Primary虛擬主機此時會在另一台ESX/ESXi Host上再度建立一台新的Secondary虛擬主機來與Primary虛擬主機同步資料

【總結】
·vMotion/DRS此機制適合用於「計畫性」停機例如當ESX/ESXi Host實體伺服器發生記憶體硬碟故障或者需要停機進行韌體(Firmware)更新及歲修時這種排定好的計畫性工作可以使用此技術將運作於虛擬化平台上的虛擬主機遷移到其他台ESX/ESXi Host上讓企業可在服務不中斷的情況下維修實體主機

·HA/FT此機制為適合用於「非計畫性」停機當ESX/ESXi Host實體伺服器電力系統出問題而不當斷電或者實體主機的主機板損壞導致實體主機故障而這些非人為因素損壞之非計畫性故障狀況發生時透過此機制可以使虛擬主機自動遷移到其他台ESX/ESXi Host上繼續開機運作

但很重要的一點是這些機制都僅僅是保護ESX/ESXi Host Level層級而已而並非虛擬主機的作業系統層級(OS Level)以及作業系統上的應用程式層級(Application Level)

例如先前提到的VMware HA機制當ESX/ESXi Host故障損壞時等於運作於其上的虛擬主機也是被不當關機雖然虛擬主機可以在其他台Host上再度開機但很有可能虛擬主機的作業系統已經因為不當關機而造成作業系統損壞因此即使已經遷移到別台Host上也無法順利開機成功所以作業系統的備份作業有其必要性

而VMware FT機制是讓2台虛擬主機資料一模一樣進行運作因此若是Primary虛擬主機發生當機的狀況時例如Windows作業系統發生藍色當機畫面(Blue Screen Of DeathBSOD)此時將會因為vLockstep同步機制而使得Secondary虛擬主機也發生系統當機的狀況

至於應用程式層級的保護機制目前也有許多廠商研發相關機制例如Symantec以Veritas Cluster技術開發的Application HA便是可以保護虛擬主機上運作的應用程式如MSSQL、Menukarkan、OracleSAP等等

[Tautan referensi]

—–
【VMware DRS】
自動根據實體主機的負載 , 自動調度虛擬系統的位置 , 也就是當某台實體主機負載較高 , 可以透過 DRS 將部份子系統透過 VMotion 搬到負載較輕的實體主機

Februari 26

  前年買了一台HP ProLiant Server這是第一次自己在HP伺服器安裝系統(以往都是買IBM),第一次使用iLO時覺得比IBM的ServerGuide機制方便許多至少我不用上網去尋找ServerGuide的版本及下載燒錄等但有發現操作的過程似乎有點異常的慢由於是第一次使用iLO加上後續也正常裝進OS了便也沒再研究
Melanjutkan browsing »

Februari 22
//MVC3開始,新增Razer語法,不同於先前的<%...%>括號語法,使用At Sgin(@)敘述程式碼片段。

//在Razer檢視中,使用@*...*@進行程式註解。

//在程式碼中,要輸出內容,要加@或@(...)
//在html標籤中,要輸出內容,要加@
//在程式碼中,要輸出純文字,要加@:
@if(true)
{
    String strPrint = "這是測試輸出文字";
    @strPrint<br/>
    <span>strPring</span><br />
    <span>@strPrint</span><br />
}

@{string strl = "測試";}
@(strl)輸出文字<br />

@{ string strHtml1 = "<ul><li>項目一</li></ul>";}
@Html.Raw(strHtml1)<br />

Februari 13

Setelah menginstal Pembaruan Windows untuk x3650 M5 dan memulai kembali perusahaan pada siang hari,Saya tidak bisa bangun lagi,Pernah ragu bahwa itu disebabkan oleh bug Pembaruan,Bagaimanapun, masalah Pembaruan terbaru agak sering terjadi。Setelah membuka kasing,Selain kesalahan LED 163 terang,Melihat SYS BRD ERROR juga aktif,Saya benar-benar ingin mengucapkan hukuman mati secara langsung,Silakan rekan DBA untuk segera melakukan perbaikan,Tapi rekan-rekan pergi makan malam,Plus ini adalah DB Server utama perusahaan,Jika kamu menyerah ini,Waktu pemulihan setidaknya dua jam,Dan semua bahan yang dibangun di pagi hari akan datang kembali,Jadi saya masih bersemangat mencari kesempatan untuk membangunkannya。

Melanjutkan browsing »

Februari 5
//在測試Controller與View時,如果因為設中斷點導致網頁顯示不完整而無法進行測試,
//可以試著點選"跳離函式(Shift+F11)",讓頁面完整顯示,以進行測試。

//先於Model設計好欄位變數等,
//再於Controller設定執行時,透過剛設計的Model樣板,進行各個變數的處理(遞交資料)
//如從網頁欄位A讀取資料到變數X,再把X送到網頁的欄位B
//最後於View設計各欄位的顯示情形
Februari 4
//Controllers\HomeController.cs
public ActionResult Index()
        {
            TempData["Message"] = "修改此範本即可開始著手進行您的ASP.NET MVC應用程式。";
            return View();
        }
<!--Views\Home\Index.cshtml-->
<h2>@TempData["Message"]</h2>
Februari 3
    //資料模型一對多關聯
    public class Guestbook
    {
        public int Id { get; set; }
        public string Content { get; set; }
        public DateTime CreateTime { get; set; }
        public Member Member { get; set; }
    }

    public class Member
    {
        [Key]
        public string Username { get; set; }
        public string Password { get; set; }
        public string Name { get; set; }
        public string Email { get; set; }

        public ICollection<Guestbook> Guestbook { get; set; }
    }
    //Code First 就是在Model定義好各欄位後,其他的Controller、View都會自動幫你產生,
    //很神奇的功能,讓你專注在寫Model的部分就好
Jan 31

    public class Index
    {
        [DisplayName("必選修")]
        //上面中括號這項非必要
        public string Required { get; set; }

        /*name只能有一個,所以這兩段先註解掉
        [Required(ErrorMessage = "學生姓名不得為空白")]
        public string Name { get; set; }

        [StringLength(10, ErrorMessage = "學生姓名不得超過10字元")]
        public string Name { get; set; }
        */

        [StringLength(10, ErrorMessage = "學生姓名必須介於2-10字元", MinimumLength = 2)]
        public string Name { get; set; }

        [Range(0, 100, ErrorMessage = "得分必須介於0~100之間")]
        public int Point { get; set; }

        [System.Web.Mvc.Compare("re_password", ErrorMessage = "兩次密碼輸入不一致")]
        //上面沒有using System.Web.Mvc的話,這邊就要打完整的命名空間
        public string Password { get; set; }
        public string Re_password { get; set; }

        [RegularExpression( @"^[0-9]{2,4}-?[0-9]{3,4}-?[0-9]{-4}$", ErrorMessage = "請輸入正確的電話號碼")]
        public string Phone { get; set; }

        [EmailAddress(ErrorMessage = "這不是E-mail格式")]
        public string Studentmail { get; set; }

        [Url(ErrorMessage = "這不是網址標準格式")]
        public string Url { get; set; }

        [FileExtensions(ErrorMessage = "所上傳的檔案不是圖片")]
        public string File { get; set; }

        [CreditCard(ErrorMessage = "這不是信用卡格式")]
        public string CreditCard { get; set; }

        [DataType(DataType.Date)]
        public string Date { get; set; }

        [Remote("RemoteTest", "Home", ErrorMessage = "Remote屬性測試")]
        public string For_Remote { get; set; }

        [MetadataType(typeof(ContentMetaData))]
        public partial class Content
        {
            private class ContentMetaData
            {
                [DisplayName("編號")]
                public int Id { get; set; }

                [DisplayName("姓名")]
                [Required(ErrorMessage = "請輸入性名")]
                [StringLength(10, ErrorMessage = "姓名不得超過10字元")]
                public string Name { get; set; }

                [DisplayName("內容")]
                [Required(ErrorMessage = "請輸入內容")]
                public string Content { get; set; }
            }
        }
    }
Jan 31

Mengalami masalah di pagi hari,Setelah mengatur izin NAS Synology malam sebelumnya,Hari ini, ketika seseorang bereaksi untuk membuka file di NAS,muncul”Nama direktori tidak valid”Kesalahan,Setelah mengonfirmasi bahwa izin NAS baik-baik saja,Sambungkan ke internet untuk mencari informasi,Saya menemukan seorang netizen yang mengalami situasi yang sama,Dan tampaknya itu terjadi setelah Windows 10 diperbarui ke 1709,Lihat komputer yang ada,Memang 1709。

Melanjutkan browsing »

Jan 30
    public class Index
    {
        [DisplayName("必選修")]

        public string required { get; set; }

        /*name只能有一個,所以這兩段先註解掉
        [Required(ErrorMessage = "學生姓名不得為空白")]
        public string name { get; set; }

        [StringLength(10, ErrorMessage = "學生姓名不得超過10字元")]
        public string name { get; set; }
        */

        [StringLength(10, ErrorMessage = "學生姓名必須介於2-10字元", MinimumLength = 2)]
        public string name { get; set; }

        [Range(0, 100, ErrorMessage = "得分必須介於0~100之間")]
        public int point { get; set; }

        [System.Web.Mvc.Compare("re_password", ErrorMessage = "兩次密碼輸入不一致")]
        //上面沒有using System.Web.Mvc,所以這邊就要打完整的命名空間
        public string password { get; set; }
        public string re_password { get; set; }

        [RegularExpression( @"^[0-9]{2,4}-?[0-9]{3,4}-?[0-9]{-4}$", ErrorMessage = "請輸入正確的電話號碼")]
        public string phone { get; set; }

        [EmailAddress(ErrorMessage = "這不是E-mail格式")]
        public string studentmail { get; set; }

        [Url(ErrorMessage = "這不是網址標準格式")]
        public string url { get; set; }
    }