Windows Server 2016 – nhiều cải tiến đáng giá

Microsoft mang tới một loạt công nghệ mới, từ ảo hóa, lưu trữ cho đến nhiều tính năng bảo mật và mở rộng cửa cho nguồn mở.

Windows Server 2016 chính thức xuất hiện từ hồi tháng 9 năm ngoái, nhưng đến nay, chúng ta mới có được cái nhìn toàn vẹn và chuyên sâu về hệ điều hành máy chủ mới nhất này của Microsoft.

Điều mà giới chuyên môn tìm thấy được ở hệ điều hành này là đây là hệ điều hành nhiều tham vọng, có nhiều tính năng, và chú trọng nhiều vào hiệu năng bên trong hệ sinh thái của Microsoft, đó là Windows, Hyper-V và Azure. Nhưng không chỉ có vậy, Windows Server 2016 cũng cho thấy cố gắng dựa vào những sáng kiến và quy trình nguồn mở, như Docker. 

Một điều lưu ý khác là các CPU 64-bit cũ lại không hỗ trợ kiến trúc ảo hóa Hyper-V của Microsoft. Điều này có nghĩa là các máy chủ cũ như Dell 1950 không tương thích với Hyper-V, hay như HP 560 Gen4 có 16 nhân bộ xử lý không "chơi được" với Windows Server 2016.

Và việc triển khai Windows Server 2016 cũng khiến người quản trị phải đắn đo nhiều điều, cũng cần lên kế hoạch cụ thể hơn. Windows Server 2016 có hai chọn lựa về giấy phép, Datacenter hoặc Standard. Cũng có ba chọn lựa khi cài đặt, gồm: phiên bản GUI máy chủ thông thường, phiên bản no GUI, và cuối cùng là máy chủ Nano.

Ở giấy phép đắt đỏ nhất là Datacenter, người dùng có được mọi tính năng phục vụ hệ thống (role) và đặc điểm tốt nhất. Những role này gồm: Storage Spaces Direct, Shielded Virtual Machines/Host Guardian Service, Storage Replica (dịch vụ đồng bộ phục hồi sau thảm họa và sao chép ảnh lưu trữ), và Network Controller (cho đám mây Azure).

Chi phí tổng cộng cho bản Standard và Datacenter bằng chi phí phần mềm máy chủ cộng thêm các giấy phép truy cập của máy khách (CAL, client access licenses). Giá cũng rất khác nhau, giữa giá niêm yết, giá OEM, giấy phép cho doanh nghiệp, cho giáo dục và một số tùy chọn khác. Ngoài ra, cũng có phiên bản Essentials Server hạn chế, dùng được cho tối đa 25 người và 50 thiết bị, dựa trên số bộ xử lý thay vì số nhân, và giấy phép này không cần CAL. 

Trong bài viết này, chúng ta sẽ xét qua một số tính năng mới và cải tiến mới của Windows Server 2016, vì có một số tính năng đúng như quảng cáo, nhưng một số lại không.

Hệ điều hành Windows Server 2016 của Microsoft có nhiều tính năng ưu việt mà những hệ điều hành máy chủ khác không có.

Tùy chọn máy chủ Nano Server

Windows Nano Server đúng như tên gọi của nó, là được thiết kế dành cho DevOps và tối thiểu hóa kernel API. Rất gọn nhẹ, máy ảo này chiếm dung lượng ít hơn 200MB và theo Microsoft thì nó vừa đủ để chạy ứng dụng.

Cách duy nhất tạo Nano Server là từ dòng lệnh PowerShell. Nano Server chạy theo định dạng file vhdx, và tại thời điểm viết bài, nó chưa hỗ trợ hypervisor, mà mới chỉ hỗ trợ Hyper-V. 

Nano Server có thể dùng với Hyper-V, Storage, Cluster và máy chủ web IIS, Dot-Net và nhân ASP-NET, cuối cùng là chạy được với bộ chứa container. Tất cả chức năng này người dùng buộc phải chọn trong quá trình cài đặt ban đầu, và về sau không thể chỉnh lại.

Nano Server cũng có vài hạn chế: tuy hỗ trợ ứng dụng, các công cụ và agent 64-bit nhưng nó lại không thể làm bộ điều khiển tên miền Active Directory được. Nano không làm policy cho group được, không thể dùng nó như máy chủ proxy được, cũng như không thể chạy Systems Center Configuration Manager và Data Protection Manager. Nano cũng bị giới hạn quản lý trong thư viện lệnh của PowerShell.

Nhưng những hạn chế này có thể khắc phục bằng những giải pháp bù đắp khác mà Windows Server 2016 mang lại từ các framework quản lý và triển khai dựa trên nguồn mở. Như OpenStack hỗ trợ cho Nano, thậm chí VMware vSphere cũng hỗ trợ Nano.

Nano được cấp phép dựa trên hoặc là role của máy chủ Datacenter hoặc role của máy chủ Standard, nghĩa là có thể gộp chung thành máy chủ DNS hoặc máy chủ IIS. Điều này rất tiện cho nhiều trường hợp ứng dụng.

Ảo hóa lồng nhau (nested virtualization)

Windows Server 2016 hỗ trợ ảo hóa chính nó. Nói cách khác, VM bên trong VM. Hiện thời, chỉ Hyper-V bên trong Hyper-V là được Microsoft chính thức hỗ trợ, nhưng chúng ta cũng có thể có được mô hình Hyper-V chạy bên dưới vSphere 6.

Những mô hình như vậy hiện nay khá hiếm nhưng sẽ rất hữu ích nếu bạn muốn chạy các bộ chứa Hyper-V thay vì chạy bộ chứa trực tiếp trên host hoặc chạy cho môi trường phát triển ứng dụng với mục đích thử nghiệm.

Để bật tính năng “lồng nhau” (nesting) trong một máy ảo HyperV, bạn cần đặt cờ (flag) thông qua PowerShell, 

Set-VMProcessor -VMName test-server-core -ExposeVirtualizationExtensions $true

và cần giả địa chỉ IP MAC 

Get-VMNetworkAdapter -VMName test-server-core | Set-VMNetworkAdapter -MacAddressSpoofing On 

Chúng ta có thể chạy các bộ chứa cũng như các VM Windows Server 2016 khác trong một máy chủ Nested. Mô hình này triển khai dễ dàng hơn trước và thuận tiện cho nhà phát triển hơn vì không can thiệp đến kiến trúc chung của hệ thống.

Còn nếu bạn muốn thử chạy Windows Server 2016 bên trong vSphere 6.0, ban đầu bạn cần thiết lập một VM Windows Server 2016 trong ESX. Có một thiết lập kích hoạt khả năng này trong thuộc tính của VM. Sau đó, bạn cài HyperV trong VM để có thể cài một VM Windows Server Nested khác. 

Tính phức tạp của VM Nested không quá mức như chúng ta mường tượng, và một VM Nested cũng không ngốn quá nhiều tài nguyên hệ thống.

Tính năng sao lưu luôn có sẵn để bảo vệ dữ liệu chia sẻ, nhằm đảm bảo tỉ lệ dữ liệu bị mất bằng 0 sau khi khởi chạy máy ảo bất kỳ.

Máy ảo được bảo vệ (Shielded VM)

Một cách để đảm bảo an toàn dữ liệu cho máy ảo là mã hóa chúng. Windows Server 2016 cho phép tạo máy ảo được bảo vệ (Shielded Virtual Machine), là máy ảo được mã hóa, có thể vận hành chung với máy ảo không mã hóa thông thường. Nhưng để tạo được máy ảo Shielded, hệ thống vật lý cần có chipset TPM.

Máy ảo Shielded được mã hóa bằng công nghệ BitLocker và chỉ hỗ trợ cho VM Windows. Nhưng không may là máy ảo Shielded chỉ có trên phiên bản Server 2016 Datacenter mà thôi, không có trong bản Standard.

Đây cũng là điều phải đánh đổi. Ví dụ như chỉ có một cách để kết nối được với máy ảo Shielded, là qua RDP, nên bạn không thể kết nối với máy ảo Shielded thông qua dòng lệnh hay bằng bất kỳ phương tiện nào khác. Vì vậy, nếu máy ảo của bạn bị mất kết nối, bạn hoàn toàn không đụng gì được đến nó trừ khi bạn phải thiết lập một công cụ riêng biệt nào đó để vào được máy ảo Shielded.

Host Guardian Service

Liên quan đến máy ảo được mã hóa là Host Guuardian Service (HGS). Các nhà cung ứng bên thứ ba đưa ra SSO, định danh và các dịch vụ quản lý khóa cho máy chủ Windows và các môi trường máy khách, còn với Host Guardian, Microsoft đưa ra dịch vụ riêng của họ.

HGS có hai thứ: bảo vệ khóa để lưu trữ và cung cấp khóa BitLocker cho máy ảo Shielded, và chứng thực cho phép chỉ có host Hyper-V được tin cậy mới có thể chạy VM Shielded. 

Dịch vụ này buộc phải chạy trong môi trường hệ Active Directory riêng. Hệ Active Directory sẽ được tạo khi hệ thống cài đặt role này tự động.

Có hai hình thức xác thực dành cho HGS. Đầu tiên là sử dụng xác thực dựa trên TPM, yêu cầu phần cứng phải có chip TPM 2.0 được kích hoạt và được cấu hình, cũng như UEFI bản 2.3.1+ với secure boot. Máy chủ Shielded sẽ được xác nhận dựa trên định danh TPM của chúng.

Hình thức thứ hai là xác nhận qua quyền admin. Cách này hỗ trợ nhiều dạng phần cứng hơn khi mà hệ thống không có hỗ trợ TPM 2.0. Hình thức này cũng ít rắc rối về cấu hình hơn. Ở chế độ này, máy ảo được xác thực dựa trên quyền thành viên trong một nhóm bảo mật AD Domain Services nào đó.

Microsoft đề xuất một Host Guardian Fabric có thể được thiết lập trên một cụm cluster 3 máy vật lý, nhưng cũng có thể cài đặt trên máy ảo cho mục đích thử nghiệm. Nếu bạn sử dụng Azure hay System Center Virtual Machine Manager thì việc thiết lập HGS hay guarded host dễ dàng hơn.

Cũng lưu ý rằng nếu không triển khai HGS được vì lý do nào đó thì máy ảo Shielded trên guarded host sẽ không chạy.

Bộ chứa Windows

Cuối cùng, bộ chứa cũng "đổ bộ" lên Windows Server 2016, sử dụng Docker và các thành phần Docker (cũng có thể dùng các giải pháp khác). Bộ chứa trực tiếp trên Windows Server 2016 có tên là Windows Server Containers. Một bộ chứa khác xuất hiện thông qua Hyper-V là dạng mode/sandbox biệt lập, gọi là bộ chứa Hyper-V.

Chế độ tách biệt HyperV yêu cầu role HyperV cài đặt trên máy chủ, sau đó chúng ta có thể khởi chạy bộ chứa này sử dụng các lệnh Docker, ví dụ như: 

docker run --isolation=hyperv microsoft/nanoserver

Windows Server 2016 không cung cấp Docker nên bạn phải cài đặt Docker riêng. Và hiện thời, có vài lỗi khi chạy Docker ở chế độ PowerShell từ xa. Điều này rất khó chịu và cũng rất khó điều chỉnh. Giới công nghệ chờ bản update tiếp theo của Microsoft để sửa lại lỗi này. 

Đầu tiên, bạn không thể sử dụng các bộ chứa Linux trừ khi chúng được xây dựng chuyên để chạy trong ngữ cảnh cụ thể nào đó. Sau đó, các nhà phát triển đưa ra hai tập bộ chứa: tập đầu là chạy trên Linux hoặc bất kỳ đâu khác, tập thứ hai là chuyên chạy cho Windows.

Thứ đến, số lượng bộ chứa cho Windows có tỉ lệ rất nhỏ so với nền Linux. Ở thời điểm viết bài, tỉ lệ này là 100:1 giữa Linux và Windows.

Điều thứ ba là lệnh PowerShell dành để quản lý bộ chứa còn khan hiếm, buộc nhà quản trị phải sử dụng Docker cho dù Docker phải chạy tách riêng. Microsoft cũng không đưa ra một môi trường Windows thống nhất để quản lý bộ chứa chung.

Cuối cùng, khi thử nghiệm vài lần với cả những bản cập nhật mới nhất, người thử nghiệm vẫn thường gặp trục trặc và không mấy tự tin, ngay cả trên nhân Server lẫn nhân Nano.

Nhưng điều chưa lý giải được là các máy ảo chạy rất mượt mà trên bất kỳ host vật lý nào không dùng HyperV. 

Một thực tế khác là hiện nay, tài liệu về bộ chứa Docker vẫn còn rất khan hiếm trong Windows Server 2016 và cả nhiều nguồn khác trên mạng. 

Hỗ trợ UEFI Linux trong Hyper-V

Linux chạy với VM thế hệ thứ 2 hiện thời có thể sử dụng tùy chọn Secure Boot/UEFI, là một đặc tả chức năng mới trong EUFI. Secure boot cũng được áp dụng cho máy ảo Windows trong các phiên bản Hyper-V trước đây, nhưng lại khá rắc rối về quyền admin và bộ cài đặt nếu bạn muốn sử dụng với các bản phân phối Linux

Nhưng nay, cài đặt UEFI với Ubuntu 16.04 nền Hyper-V khá dễ dàng. Secure boot còn hỗ trợ các bản Redhat Enterprise Linux 7.0+, SUSE Enterprise Server 12+, Ubuntu 14.04+ và Centos 7.0+. Các máy ảo Linux buộc phải cấu hình một thành phần để sử dụng MS UEFI Certificate Authority trong mục VM Settings, bạn cũng có thể kích hoạt tính năng này bằng dòng lệnh PowerShell.

PowerShell Direct

PowerShell Direct cho phép các lệnh PowerShell áp dụng cho máy ảo VM cụ thể nào đó mà không cần bất kỳ kết nối mạng nào, dựa vào mối liên quan giữa Hyper-V và các máy ảo của nó. Chức năng này cũng chỉ có hiệu lực với host có những máy ảo cụ thể và chỉ áp dụng được cho máy ảo không bật Shielded. 

Nhà quản trị cũng được nhắc gõ vào thông tin xác nhận và nếu bạn không đăng nhập với tài khoản thuộc nhóm quản trị Hyper-V, bạn cũng không thể sử dụng PowerShell Direct. 

Đến nay, chức năng này chỉ hỗ trợ những hệ điều hành là Windows 10 và Windows Server 2016. Cả máy host lẫn máy khách đều có cùng yêu cầu cấu hình. PowerShell Direct có thể là công cụ hữu ích để tạo script hay truy cập một máy ảo nào đó bị mất kết nối mạng, nhưng chức năng này vẫn còn hỗ trợ quá ít hệ điều hành, và trường hợp sử dụng PowerShell Direct còn khá hạn hẹp.

Tính năng này cũng có thể là một kẽ hở bảo mật nếu thông tin đăng nhập host Hyper-V bị mất, bởi vì lúc ấy bạn rất khó liên lạc được với máy ảo qua những cách thông thường khác. 

Cập nhật lưu trữ

Tính năng sao lưu luôn có sẵn để bảo vệ dữ liệu chia sẻ, nhằm đảm bảo tỉ lệ dữ liệu bị mất bằng 0 sau khi khởi chạy máy ảo bất kỳ. Để tận dụng tính năng này, nhà quản trị cần thiết lập nhiều cụm cluster ở nhiều địa điểm vật lý tách rời nhau. Mục đích của sao lưu lưu trữ này là phục hồi sau thảm họa giữa các địa điểm cách xa nhau, và cho phép sử dụng nhiều trung tâm dữ liệu hiệu quả hơn. Chức năng này cũng hỗ trợ khả năng đồng bộ dữ liệu bảo vệ với tỉ lệ thất thoát bằng 0 (theo tài liệu của Microsoft công bố). Cũng vậy, chức năng này cũng cho phép sao lưu bất đồng bộ đối với những hệ thống mạng có độ trễ cao hay khoảng cách địa lý xa. Hệ thống liên tục sao lưu, không dựa vào ảnh snapshot/checkpoint. Tính năng này hữu ích cho các công ty đa quốc gia.

Chính sách lưu trữ QoS

Chính sách QoS trong Server 2016 (chỉ có trong bản Datacenter) có thể áp dụng cho 2 trường hợp, và cả hai đều liên quan đến Hyper-V và mọi máy chủ phải chạy Server 2016. Cách đầu là sử dụng chính sách QoS với một máy chủ Scale-out File và cách còn lại là sử dụng Cluster Shared Volumes.

Những chính sách này được kích hoạt mặc định trên Cluster Shared Volumes và bạn không phải làm gì đặc biệt để can thiệp đến chúng. Tuy nhiên, chỉnh sửa những chính sách này lại giúp bạn tăng được tốc độ lưu trữ của máy chủ. Vài tùy chọn khá hữu ích như theo dõi tốc độ lưu trữ và quản lý tải I/O trên mỗi workload lưu trữ. Ví dụ, bạn có thể thiết lập IOP tối thiểu và tối đa trên mỗi VHD (tạo chính sách riêng). Hoặc bạn có thể tạo một chính sách chia sẻ giữa các VHD.

Storage Spaces Direct (S2D)

Storage Spaces Direct là một phần của công nghệ clustering trong Windows Server 2016. S2D sử dụng cho máy chủ chạy bản Windows Server 2016 Datacenter, có lưu trữ (như JBOD) để tạo lưu trữ dựa trên phần mềm, sử dụng SMB3, gom các hệ thống file và tự sửa những lỗi về lưu trữ. Lưu trữ phải được gom lại, sử dụng chức năng Failover Role và hệ thống file clustering của hệ thống.

Yêu cầu hệ thống cho S2D khá cao: cần 128GB RAM, hai ổ SSD và ít nhất 4 ổ HDD cấu hình ở non-RAID, cộng với một ổ HDD bổ sung là ổ cứng khởi động. Cũng vậy, bạn cần ít nhất hai máy chủ để tạo thành một cụm cluster. Hệ thống cũng đề nghị mỗi máy cần có cổng mạng 10GBE.

Nếu đã đáp ứng được những yêu cầu cấu hình này, chúng ta có thể thiết lập các tier lưu trữ khác nhau, mà mặc định nếu có ổ SSD và HDD, S2D sẽ tự động tạo tier về tốc độ và dung lượng cho lưu trữ lai (hybrid).

Chức năng Failover cho clustering cải tiến hơn

Có nhiều cải tiến rất đáng ghi nhận về chức năng Failover clustering trong Windows Server 2016. Một trong những chức năng thú vị nhất là cluster Operating System Rolling Upgrade. Nếu bạn đã có vài node cluster Windows Server 2012 R2, bạn có thể nâng cấp lên cluster Windows Server 2016 mà không phải dừng Hyper-V hay các tải Scale-out File Server. Một tính năng thú vị khác là sử dụng Cloud Witness cho quorum witness (Failover logic), dùng Azure để lưu đĩa witness. Một cải tiến khác cũng rất thú vị là tính năng cân bằng tải máy ảo, vì tính năng này rất ích lợi để kiểm tra xem node nào đang vận hành nhiều và hệ thống tự động chuyển các máy ảo đang chạy sang node khác. 

Windows 2016 Security bổ sung Credential Guard

Trong các bản Windows trước, các khóa đăng nhập và khóa secret được đặt trong Local Security Authority (LSA). Còn nay, với tính năng Credential Guard mới, những dữ liệu liên quan đến LSA được bảo vệ bằng một lớp bảo mật nền ảo hóa. Do đó, Credential Guard chống được các kiểu tấn công như bẻ được hash hay vượt được ticket. Tính năng này thực hiện bằng cách tách lập các khóa secret, như hash mật mã NTLM và ticket Kerberos để cấp quyền cho các ticket khác, vì thế chỉ có phần mềm hệ thống được cấp quyền mới truy cập được các khóa này.

Microsoft muốn tiếp cận với cộng đồng Linux thể hiện rõ rệt trong hệ điều hành Windows Server 2016 này.

Những khóa tên miền do các dịch vụ Windows quản lý cũng được chạy dưới môi trường ảo hóa bảo mật. Phần còn lại của hệ điều hành không thể truy cập vào được môi trường này. Tính năng này có thể quản trị thông qua chính sách nhóm, WMI, PowerShell hay thậm chí command prompt thông thường và cũng hoạt động với Windows 10 (Enterprise hay Education) và Windows Enterprise IoT. Tuy nhiên, để có tính năng Credential Guard cũng đòi hỏi vài yêu cầu phần cứng cơ bản, như: CPU 64-bit, các extention ảo hóa CPU (Intel VT-x hoặc AMD-V) và SLAT, TPM 1.2 hay 2.0, EUFI 2.31.c+ với Secure Boot.

Cách duy nhất tạo Nano Server là từ dòng lệnh PowerShell.

Just Enough Admin (JEA)

JEA là bộ bảo mật nền PowerShell (từ phiên bản 5 trở lên), có thể hạn chế quyền của admin chỉ để họ đủ quyền làm việc mà thôi. Nó cho phép người dùng cấp quyền cụ thể cho một tập lệnh cụ thể nào đó trên máy từ xa khi đăng nhập. Tính năng này có trên Windows 10, Server 2016 và các hệ điều hành cũ nếu có bản cập nhật Windows Management Framework. JEA kết hợp admin Just In Time xuất hiện lần đầu trong Server 2012 R2 và một phần của Microsoft Identity Manager, cho phép nhà quản trị hạn chế quyền quản trị về thời gian lẫn khả năng chạy các lệnh hệ thống.

Network Controller (SDN - Software defined networking)

Network Controller là công cụ bổ sung, giúp nhà quản trị có thêm cách tiếp cận với chức năng quản lý mạng. Nó cung cấp 2 API. Một cho Network Controller giao tiếp với mạng và API còn lại cho bạn liên lạc trực tiếp với Network Controller. Role Network Controller có thể chạy ở cả môi trường tên miền hoặc không tên miền.

Network Controller có thể quản trị bằng SCVMM hay SCOM. Role Network Controller cho bạn cấu hình, theo dõi, lập trình hay tinh chỉnh kiến trúc hệ thống do SCVMM hay SCOM quản lý. Tuy vậy, không bắt buộc sử dụng những công cụ này vì chúng ta cũng có thể sử dụng các lệnh PowerShell hay REST API thay thế.

Network Controller hoạt động với các phần khác nhau trên kiến trúc mạng, như máy ảo Hyper-V và các bộ chuyển mạch ảo, tường lửa trung tâm dữ liệu, gateway RAS và các cân bằng tải nền phần mềm.

Tường lửa trung tâm dữ liệu

Tường lửa cho trung tâm dữ liệu (data center) là dạng tường lửa phân tán mới, dựa trên luồng dữ liệu mạng và ứng dụng kết nối thay vì workload. Ví dụ, nếu bạn di dời một máy ảo từ một máy chủ đến một máy chủ khác trong cùng trung tâm dữ liệu thì nó nên tự động thay đổi các rule tường lửa trên máy chủ khác, để cho phép cổng kết nối nào được phép mở, cấu hình lại bộ định tuyến và bộ chuyển mạch cho máy ảo đó. Tường lửa cũng cung cấp khả năng bảo vệ cho các máy ảo độc lập trên hệ điều hành khách. Không cần phải cấu hình tách biệt một tường lửa cho từng máy ảo riêng rẻ.

Phương tiện quản lý máy ảo như vậy cũng là tính năng mà VMware đã phát triển nhằm tăng tính linh động cho máy ảo, giúp giảm tải tối thiểu cho người quản trị hệ thống.

Tổng kết

Bài viết chưa liệt kê được hết những điểm sáng và tối của Windows Server 2016 nhưng còn tùy vào từng môi trường, từng trường hợp và chiến lược triển khai hệ thống của nhà quản trị thì mới đánh giá được chính xác giá trị của Windows Server 2016. Nhưng nhìn chung, hệ điều hành này hiện có nhiều tính năng rất tốt, vài trong số ấy cực tốt và vài tính năng hoàn toàn không có trong sản phẩm của đối thủ cạnh tranh, có thể giúp các nhà phát triển thay đổi cả chiến lược triển khai hệ thống. 

Windows Server 2016 cũng có nhiều tính năng cải thiện hơn, nhất là nỗ lực mà Microsoft muốn tiếp cận với cộng đồng Linux cho thấy rõ rệt trong hệ điều hành này. Bài viết có đề cập một số tính năng hướng đến Linux nhưng không phải tất cả. Vài tính năng yêu cầu đến phần cứng cụ thể hay thiết lập cụ thể. 

PC World VN 04/2017

Từ khóa: ảo hóa, Đồng Anh, Linux, máy chủ, máy trạm, Microsoft, Windows Server 2016