SQL Server 2012 除了它帶來的許多新功能以及工具以外,還帶來一個新的變化-它的授權模式 (Licensing Model)...
SQL Server 2012 除了它帶來的許多新功能以及工具以外,還帶來一個新的變化-它的授權模式 (Licensing Model)。
在 SQL Server 2008 R2 為止的 SQL Server 授權方式,一直都是主從端的授權方式,也就是 Server 本身要一份伺服器授權,作為讓 SQL Server 執行在電腦上的合法憑證,而存取它的用戶端也需要一份授權,稱為用戶端存取授權 (Client Access License, CAL),CAL 授權還分針對設備 (Device CAL) 或是使用者 (User CAL),不同的標的會有不同的授權方式,讓企業得以自由選擇較彈性的授權方式,像是如果存取它的使用者很多但大家都共用兩三台電腦,那麼用 Device CAL 會比較省;亦或是使用者數不多,但每個人都有 PC, NB, Mobile Device 等不同的設備,那麼 User CAL 是最好的選擇。當然還有一種不用算 CAL 的授權方式-處理器授權 (Processor License),它是以執行 SQL Server 的伺服器上的處理器數量計算授權的,例如執行 SQL Server 的電腦有 4 顆處理器,那麼就需要四個處理器授權,在處理器授權的模式下,可以允許不限數量的設備與使用者存取 SQL Server 上的服務,它本身也包含伺服器授權,所以 Processor License = Server License + Unlimited CALs,對以 SQL Server 為主開發的 Web 應用程式而言是最適當的授權方式,以及佈建 Intranet 的企業也相當適合 Processor License (需要的 CAL 數量多於一定程度時)。
之所以需要 Processor License,是因為 SQL Server 的 CAL 是以最終端 (End-User) 為授權標的,而不是以直接存取它的電腦或使用者為授權標的,也就是說,如果有一個 Web Application 後端是 SQL Server,那麼需要的 CAL 數量是所有使用 Web Application 的使用者數,而就算 Web Application 和 SQL Server 間有隔了一台或數台 Application Server,表面上是只有 Application Server 上的程式會存取到 SQL Server,但是 CAL 數仍要以最終端的使用者數來算,若有 1000 個使用者存取的話,就必須要有 1000 個 CAL 授權,為了要減少大量使用者所需要的成本,才有了 Processor License,只要購足 Processor License,就算使用者有一億個,一樣只有 Processor License。
不過這兩年雲端世代的發展,CPU 多核化,以及虛擬化平台的崛起,一台四顆處理器的伺服器只需要四個處理器授權就能在同一台伺服器上跑無數台 VM-based SQL Server 伺服器,而一樣是合法的授權範圍,企業可以跑 10 台 SQL Server VM 做 Load Balancing,微軟自己似乎也意識到這樣好像少賺了很多錢 ... XD,所以 SQL Server 2012 導入了一個新的授權方式,除了現有的 Server License + CAL 以外,原有的 Processor License 修改成核心導向授權 (Core-based License)。
核心導向的授權和處理器授權最大的不同,就是計算處理器的方式由實體處理器的數量,改成以處理器的核心數量計算,而處理器又分為兩種,一種是針對實體處理器核心數授權,另一種是針對虛擬機器的處理器核心數授權,之所以為這樣設計,是因為不是所有的伺服器都是跑完全的虛擬化,或是虛擬化後未必全部都是執行 SQL Server,若硬是用實體伺服器的處理器核心數來算似乎也不夠彈性,所以核心的計算是依 SQL Server 實際在執行的機器 (實體 or 虛擬) 所配給的處理器核心數為主。
1. 以虛擬機器為主的授權 (VM-based Core License)
若伺服器虛擬化後執行的虛擬機器只有一台是 SQL Server,且伺服器的處理器的核心數 > 配給 SQL Server VM 的核心數時,則適合這樣的授權方式,它可以降低需要的 Core License 數,讓企業不用依伺服器的所有處理器核心數來計算授權,可以相對省下不少授權費用。
不過它的缺點是,授權標的是針對 VM,所以如果又要多一台 SQL Server VM,那麼新加進來的 VM 一樣需要新的 Core License,否則就是違反授權合約。所以如果要執行的 SQL Server VM 所配置的處理器核心數的總和超過實體伺服器所有實體處理器核心數的總和的話,則改用實體機器為主的授權方式會比較省錢。
2. 以實體機器為主的授權 (Physical Server-based Core License)
顧名思義,這樣的授權方式是以實體伺服器上處理器的核心數為計算標準,例如一台四顆四核心 Xeon CPU 的伺服器,總共有 16 個核心數,那麼授權費就是 16 個核心授權,在這樣的授權模式下,企業可以在這台伺服器上執行不限數量且不限配置處理器數量的 SQL Server VM,同時亦享有不限 CALs 數量的優點。
但它的缺點是,如果 SQL Server VM 所配置的 CPU 核心數總和 < 伺服器實體處理器的核心數總和的話,這樣的授權就是一種浪費,例如一台 16 核心的伺服器上面只跑了兩台共 8 核心的 SQL Server VM,那麼就多浪費了 8 核心的授權費。
3. 授權最低數 (Minimum Core)
核心導向授權還有一個特色,就是它有最低核心授權數 (Minimum Cores) 的限制,一份 SQL Server 2012 (Standard, BI, Enterprise) 的 Core License 數最低要有 4 個核心,也就是即便伺服器上只有一顆雙核心 CPU,它仍然是以 4 個核心來計價,如果是更高能力的 SQL Server (Datacenter Edition),它的最低核心授權數會是 8 個。在計算 SQL Server 2012 授權核心數時,核心數量的計算要注意到最低授權數的部份。
授權最低數也會在 SQL Server 2008 R2 升級到 SQL Server 2012 時的核心數量計算。
4. 核心授權費用 (Price of Core License)
依微軟的 SQL Server 2012 授權白皮書所載,一個核心的授權費用是 SQL Server 2008 R2 處理器授權的 1/4,以最低 4 顆核心的費用來算,Enterprise Edition 大約是 27,000 美元,Standard Edition 大約是 7,200 美元。唯一的例外是 BI 版本,它只有 Server/CAL 的授權,沒有 Core License。同時 CAL 的價格也上漲了 27% 左右。
經過以上的討論,相信讀者應該對 SQL Server 2012 這個新的 Core-based License 授權模式有了基本的了解了,至於更細部的授權相關資訊,建議還是找微軟的代理商,經銷商或合作夥伴洽詢,以得到最精確的授權方案與成本規劃。
PS: 以上如果錯誤,以 SQL Server 2012 授權白皮書與微軟官方解釋為準。