Triển khai Storage Space Direct trong Windows Server 2016
Lưu ý là cần phải join domain các Node trước khi thực hiện tạo cluster.
Powershell
Lưu ý: Đối với việc triển khai Storage Space Direct bằng command line thông qua Powershell thì mô hình sẽ chuyển sang sử dụng Windows server 2016 core.
Step 1: Deploy Windows Server
Đối với việc deploy Windows Server 2016 Core, có thể tham khảo tại https://goo.gl/8VYHyb.
Step 1.1: Connecting to the cluster Nodes
- Sử dụng Powershell với quyền Administrator để thực thi command.
Set-Item WSMan:\localhost\Client\TrustedHosts “*”
- Kết nối vào PS session của các Node khác.
Enter-PSSession –ComputerName <myComputerName> -Credential LocalHost\Administrator
Step 1.2: Adding domain accounts
Lưu ý hiện tại trong tài liệu này sẽ hướng dẫn triển khai ở Node local, vì thế thì sẽ sử dụng user local administrator theo dạng <ComputerName>\Administrator.
Tuy nhiên khi tiến hành quản lý với mô hình hyper-converged system, bao gồm cluster, storage và virtualization thì sẽ cần một Domain Account nằm trong group Administrator của mỗi Node.
Thực hiện command này với quyền administrator trong Powershell.
Net localgroup Administrators <Domain\Account> /add
Command này sẽ add domain account vào group security Administrator local.
Step 2. Configure the network
Storage Space Direct yêu cầu bandwidth cao và latency network đối với các connection giữa các Node phải thấp. Điều này rất quan trọng khi nó ảnh hưởng chính đến hiệu năng và sự ổn định của toàn hệ thống. Do đó Microsoft khyến cáo nên sử dụng ít nhất 2 connection 10Gbs giữa các Nodes với nhau, đồng thời tính năng RDMA cũng được khuyến cáo sử dụng nhằm mang lại hiệu năng network cũng như giảm sự chiếm dụng CPU khi network traffic tăng cao.
Việc cấu hình network tùy nhu cầu của mỗi mô hình nên sẽ có các hướng triển khai khác nhau. Đối với mô hình hiện tại đang triển khai sẽ được cấu hình Hyper-V virtual switch thông qua các cmdlet Get-NetAdapter , New-VMSwitch, Add-VMNetworkAdapter, Set-VMNetworkAdapterVlan, Get-VMNetworkAdapterVlan, Restart-NetAdapter. Lưu ý đây là bước không bắt buộc.
Step 2.1: Create a Hyper-V virtual switch
1.Xác định các network adapter có trên node.
Get-NetAdapter | FT Name, InterfaceDescription, Status, LinkSpeed
2. Tạo virtual switch kết nối vào 2 physical network adapter và enable Switch Embedded Teaming. Lưu ý nếu cấu hình thông qua PSSession thì có thể sẽ mất kết nối trong một khoảng thời gian do hệ thống cần việc chỉnh sữa network.
New-VMSwitch –Name SETswitch –NetAdapterName “<adapter1>”, “<adapter2>” –EnableEmbeddedTeaming $true
3.Tiến hành add vNIC trên host vào virtual switch.
Add-VMNetworkAdapter –SwitchName SETswitch –Name SMB_1 –managementOS
Add-VMNetworkAdapter –SwitchName SETswitch –Name SMB_2 –managementOS
4.Cấu hình vlan cho vNIC.
Set-VMNetworkAdapterVlan -VMNetworkAdapterName “SMB_1” -VlanId <vlan number> -Access -ManagementOS
Set-VMNetworkAdapterVlan -VMNetworkAdapterName “SMB_2” -VlanId <vlan number> -Access -ManagementOS
5.Kiểm tra lại vlan trên vNIC
Get-VMNetworkAdapterVlan –ManagementOS
Output sẽ tương tự như sau
6.Restart các vNIC để tiến hành active vlan.
Restart-NetAdapter “vEthernet (SMB_1)”
Restart-NetAdapter “vEthernet (SMB_2)”
Step 3: Configure Storage Space Direct
Các bước trong bước này sẽ giúp triển khai hoàn chỉnh Storage Space Direct trên từng Nodes. Lưu ý khuyến cáo sử dụng các command bên dưới trong local Powershell của từng Nodes bằng quyền Administrator, không sử dụng thông qua PSSession.
Step 3.1: Run cluster validation.
Microsoft yêu cầu các Nodes trong cluster phải đạt được các bài test trước khi tạo cluster, điều này nhằm đảm bảo Nodes có thể ở chế độ tốt nhất trong một failover cluster. Tiến hành thực hiện như sau:
Powershell
Test-Cluster –Node <MachineName1, MachineName2, MachineName3, MachineName4> –Include “Storage Spaces Direct”, “Inventory”, “Network”, “System Configuration”
Ở đây có thể chỉ định địa chỉ IP hoặc Name của Nodes phía sau option “-Node”, option -Include chỉ định các bài test sẽ được thực hiện với Nodes.
Step 3.2: Create a cluster.
Trong bước này sẽ tiến hành tạo cluster với các Nodes đã qua được bài test ở step 3.1 bên trên.
New-Cluster –Name <ClusterName> –Node <MachineName1,MachineName2,MachineName3,MachineName4> –NoStorage
Lưu ý với command trên các option
- -Name: Chỉ định tên của cluster.
- -Node: Chỉ định các Nodes nào sẽ là thành viên của cluster.
- -NoStorage: Đây là một tham số quan trọng cần lưu ý khi triển khai Storage Space Direct, nếu không cung cấp tham số này trong command trên thì tất cả các disk của Node sẽ được tự động thêm vào cluster, điều này sẽ dẫn đến khi thực hiện bước tiếp theo để enable Storage Space Direct thì Storage Pool sẽ không tồn tại bất kì disk nào.
Khi tạo cluster có thể sẽ gặp thông báo warning
“There were issues while creating the clustered role that may prevent it from starting. For more information, view the report file below.”
Đây là thông báo về vấn đề không tìm thất sự tồn tại của “cluster quorum” trong bất cứ disk nào khi chạy command New-Cluster. Tuy nhiên có thể bỏ qua và tiến hành cấu hình quorum sau.
Step 3.3: Configure a cluster witness
Việc cấu hình cluster witness rất quan trọng, vì nó sẽ đảm bảo cluster vẫn hoạt động nếu trong mô hình có 3 hoặc nhiều hơn 3 node trong cluster xảy ra tình trạng 2 node offline. Trong trường hợp chỉ có 2 node trong cluster thì việc cấu hình cluster witness sẽ rất quan trọng nếu trọng trường hợp 1 node offline thì vẫn đảm bảo cluster online.
Có thể xem chi tiết tại https://goo.gl/1xUJdx hoặc https://goo.gl/FLA3JT
Step 3.4: Clean disks
Đối với các disk sẽ sử dụng trong Storage Space Direct, tất cả cần phải trống và không tồn tại bất kì partition hoặc dữ liệu nào khác. Nếu disk chứa partition thì sẽ không thể sử dụng trong Storage Space Direct system.
Thực hiện script bên dưới để kiểm tra và cấu hình lại tất cả các disk trên cluster. Lưu ý script này sẽ xóa hết tất cả dữ liệu của disk ngoại trừ disk OS.
Có thể bỏ qua bước này nếu các disk trên cluster đã hoàn toàn xóa dữ liệu.
icm (Get-Cluster -Name <cluster or Node name> | Get-ClusterNode) { Update-StorageProviderCache Get-StoragePool | ? IsPrimordial -eq $false | Set-StoragePool -IsReadOnly:$false -ErrorAction SilentlyContinue Get-StoragePool | ? IsPrimordial -eq $false | Get-VirtualDisk | Remove-VirtualDisk -Confirm:$false -ErrorAction SilentlyContinue Get-StoragePool | ? IsPrimordial -eq $false | Remove-StoragePool -Confirm:$false -ErrorAction SilentlyContinue Get-PhysicalDisk | Reset-PhysicalDisk -ErrorAction SilentlyContinue Get-Disk | ? Number -ne $null | ? IsBoot -ne $true | ? IsSystem -ne $true| ? PartitionStyle -ne RAW | % { $_ | Set-Disk -isoffline:$false $_ | Set-Disk -isreadonly:$false $_ | Clear-Disk -RemoveData -RemoveOEM -Confirm:$false $_ | Set-Disk -isreadonly:$true $_ | Set-Disk -isoffline:$true } Get-Disk |? Number -ne $null |? IsBoot -ne $true |? IsSystem -ne $true |? PartitionStyle -eq RAW | Group -NoElement -Property FriendlyName } | Sort -Property PsComputerName,Count
Output của command trên tương tự như sau
Step 3.5: Enable Storage Spaces Direct
Sau khi đã hoàn tất tạo cluster, tiếp tục sẽ bắt đầu tiến hành run cmdlet Enable-ClusterStorageSpaceDirect thông qua Powershell. Command này có thể chạy local ở từng Node hoặc remote command thông qua PSSession ( không khuyến cáo cách này ). Tham số -CimSession có thể sử dụng tên Node hoặc tên Cluster, nếu sử dụng tên Node có thể sẽ có độ trễ do hệ thống cần phải phân giải DNS.
Enable-ClusterStorageSpaceDirect -CimSession <ClusterName>
Command này sẽ tiến hành chuyển storage system vào mode Storage Space Direct và sẽ thực hiện tự động các vấn đề như sau:
- Create a pool: Tạo một pool với tất cả các disk có trên cluster ( trừ disk OS ).
- Configures the Storage Spaces Direct caches: Nếu trên cluster tồn tại nhiều loại disk ( ssd, hdd ) thì hệ thống sẽ tự động cấu hình các disk có tốc độ cao trở thành cache devices.
- Tiers: Mặc định sẽ có 2 tier được tạo khi chạy command trên. Một tier được gọi là “Capacity” và một tier là “Performance”.
Quá trinh chạy command trên có thể cần một khoảng thời gian để hoàn tất, thời gian này dựa vào cấu hình của server.
Step 3.6: Create volumes.
Sau khi thực hiện việc enable Storage Space Direct thì tiếp theo sẽ bắt đầu khởi tạo Volumes. Ở đây sẽ sử dụng cmdlet New-Volumes ( đề nghị sử dụng cmdlet này ) để có tốc độ thực thi tốt nhất. Cmdlet New-Volume sẽ tiến hành việc tự động hóa tạo Virtual Disk, Partition, format disk và add vào cluster shared volumes – All in one.
Command ( tùy theo hệ thống mà biến chuyển các option theo ý muốn )
New-Volume -FriendlyName “Volume1” -FileSystem CSVFS_ReFS -StoragePoolFriendlyName S2D* -Size 1TB
Các tham số bắt buộc khi sử dụng cmdlet New-Volume.
- FriendlyName: Tên của Volumes, có thể đặt bất kì.
- FileSystem: Có thể sử dụng CSVFS_ReFS hoặc CSVFS_NTFS.
- StoragePoolFriendlyName: Tên của storage pool, ở đây sử dụng “S2D on ClusterName”.
- Size: Size của Volumes, ở đây tạo với size “10TB”.
Lưu ý hệ thống sẽ tự động thực hiện việc cấu hình mức độ bảo vệ dữ liệu trên Volumes dựa vào số lượng server đang có trong cluster. Ví dụ nếu cluster có 2 server thì Volumes mới sẽ được cấu hình two-way mirroring, nếu có 3 server thì sẽ được cấu hình là three-way mirroring. Nếu hệ thống có trên 4 server thì người dùng có thể cấu hình mức độ bảo vệ là Mirror hoặc Parity.
Chi tiết về cmdlet có thể xem tại https://goo.gl/Vhw6Oh.
Step 3.7: Deploy virtual machines
Ở bước này đã có thể tiến hành tạo virtual machine trên Node của cluster hyper-converged Storage Space Direct. Các VM nên được cấu hình để lưu trên các CSV namespace ( exp: C:\ClusterStorage\Volumes1 ) thay vì lưu local trên từng Node.
Việc quản trị storage cũng như virtual machine có thể thực hiện thông qua powershell, GUI local hoặc System Center Virtual Machine Manager.
Graphic User Interface ( GUI ).
Tiến hành tạo tạo cluster thông qua Server Manager
Vào Tool -> Failover Cluster Manager -> Create Cluster
Tiến hành chọn các server sẽ cấu hình vào cluster
Xác định 1 IP cluster
Trong bước này các servers được chọn phải vượt qua bài test cluster tương tự như command Test-Cluster trong phần cấu hình thông qua Powershell.
Lưu ý bỏ chọn tại phần tô đỏ như trong hình, dòng này có ý nghĩa như option –NoStorage của command New-Cluster trong phần cấu hình cluster thông qua Powershell.
Sau khi hệ thống test thành công các server thì đồng nghĩa cluster đã được tạo hoàn tất. Do hiện tại Microsof t không hỗ trợ enable Storage Space Direct thông qua GUI nên tiếp theo sẽ thực hiện thông qua Powershell.
Sau khi enable Storage Space Direct, có thể tiếp tục tạo Storage Pool thông qua Server Manager.
Lưu ý phần Primordial trong Storage Spaces thể hiện có thể tạo được Pool từ các drives trống trong hệ thống.
Có thể tạo Storage Pool thông qua cách click phải và chọn New Storage Pool
Hoặc Task -> New Storage Pool
Tiến hành chọn Name cho Storage Pool sẽ tạo.
Lựa chọn các devices sẽ nằm trong Storage Pool, trong phần Allocation có thể chỉ định tham số Hot Spare cho device mong muốn.
Hệ thống sẽ cung cấp thông tin tổng quan về các cấu hình vừa thao tác trên Storage Pool sắp tạo. Tiến hành chon Create để hoàn tất quá trình Create.
Sau khi đã có Storage Pool thì có thể tạo Virtual Disk để bắt đầu chứa các VHD hoặc VHDx ( hoặc bất kì loại file mong muốn ).
Chỉ định Name cho Virtual Disk.
Lựa chọn size phù hợp theo yêu cầu, ở đây có thể chon Maximum size Pool cung cấp cho Virtual Disk.
Xác nhận các thông số của Virtual Disk sẽ tạo và chọn Create để hoàn tất quá trình.