︿
Top


活動簡介

儘管人們都期盼疫情早日告終,但不幸的,你我與病毒共存、已經邁入第三個年頭,舉凡停工、國際邊境封閉、原物料供應斷鏈、砍單延單頻仍等等情況,至今依舊時有所聞;換言之,近年崛起的全球供應鏈短鏈化、零接觸商機、混合式辦公等等,仍將繼續成為常態、而不只是過度場景。

假使到了今日,企業依然與地端機房、傳統 IT 採購模式、單體式應用架構、瀑布式開發流程等舊有的慣性為伍,恐將無法順利駕馭接踵而來的疫常經濟型態,使得營運拓展的步伐日益受限。

唯今之計,企業有必要放低身段、提升眼界,認真地盤點自身的技術缺口,透過不斷的鍛鍊與實作,逐漸突破窠臼,一步步向Kubernetes、DevOps、Microservices、Serverless、APIM、Multi-Cloud…等雲原生架構靠攏,加速鏈結並純熟運用大數據、AI/ML、AR/VR、虛實整合等先進技術,強化企業的數位競爭力,以便能夠從容推動疫常商機新佈局。

新的一年,一方面各項雲原生技術持續演進、翻轉,二方面企業所承受的供應鏈管理、ESG落實等壓力越來越大;為響應廣大會眾的期許,2022臺灣雲端大會特別擴大議程與展覽規模,並新增四場主題論壇,1.Cloud Native Enterprise 2.DevOps Enterprise 3. AI Enterprise 4.Cloud Security。 現在,就讓我們擁抱雲邊端科技,以堅強的數位力來強化營運韌性,迎接未來所有變局。





活動資訊












站長議程和 Hands-On Lab

站長當天議程簡報




站長帶與會朋友實作的工作坊連結 Cloud Infrastructure - 誰說單機不能 SDS 軟體定義儲存 - Workshop

站長帶當天與會朋友實作的工作坊簡報


無法到場,但是對於 Windows Server 2022 SBC (Storage Bus Cache) 技術有興趣的朋友,可以直接參考下列三段實作影片,了解整個流程和維護管理 SBC 運作環境。想了解更多細節的朋友,也可以參考站長在網管人的技術專欄:
首先,為 Windows Server 2022 安裝 Failover Cluster 伺服器功能並啟用 SBC 功能,接著建立和線上擴充 MAP (Mirror-Accelerated Parity) 磁碟區。


隨著時間過去,SBC 建立的 Storage Pool 儲存空間總會有用完的時候,此時如何新增 SSD/HDD 至原有的 Storage Pool? 請參考下列影片


無論多耐用的儲存裝置,總是會有損壞故障的一天,當 SBC Storage Pool 運作架構發生 SSD/HDD 儲存裝置故障損壞時該如何進行維護? 請參考下列影片






實作 PowerShell

因為,目前在 Azure VM 環境中,新增 SSD/HDD 暫時還沒有 Serial Number 和 Media Type,所以會有二個不同的實作 PowerShell,有興趣的朋友,參考看看。

SBC Lab for Physical Server


# ==================================================================================
# Author: Weithenn Wang (weithenn at weithenn.org)
# Version: v0.1 - July 26, 2022
# Description: Windows Server 2022 Single Node Caching/Tiering for physical server
# ==================================================================================
# Install the Failover Clustering feature
Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools
# Check physical disk
Get-PhysicalDisk | Sort-Object -Property Size | ft DeviceId, MediaType, CanPool, HealthStatus, Usage, Size -AutoSize
# Check configurable field of the SBC(Storage Bus Cache)
Get-StorageBusCache
# Import the SBC module
Import-Module StorageBusCache
# Enable SBC feature
Enable-StorageBusCache
Get-StorageBusCache
# Check storage pool, physical disk, storage bus disk, and storage bus binding
Get-StoragePool -FriendlyName Storage*
Get-PhysicalDisk | Sort-Object -Property Size | ft DeviceId, MediaType, CanPool, HealthStatus, Usage, Size -AutoSize
Get-StorageBusDisk | Sort-Object Number
Get-StorageBusBinding
# Create 1TB MAP(Mirror-Accelerated Parity) volume with a Mirror:Parity ratio of 20:80
New-Volume -FriendlyName "MAP-Volume" -FileSystem ReFS -StoragePoolFriendlyName Storage* -StorageTierFriendlyNames MirrorOnSSD, ParityOnHDD -StorageTierSizes 200GB, 800GB
# Set an MAP-Volume partition and drive letter
Get-VirtualDisk
Get-Disk -FriendlyName "MAP-Volume"
Get-Partition -DiskNumber 7
Get-Partition -DiskNumber 7 -PartitionNumber 2 | Set-Partition -NewDriveLetter M
Get-Volume -FriendlyName "MAP-Volume"
# Expand the virtual disk with storage tiers
Get-StorageTier -FriendlyName MAP-Volume*
Get-StorageTierSupportedSize Performance | ft @{E={$_.TierSizeMin/1GB};L="TierSizeMin(GB)"}, @{E={$_.TierSizeMax/1GB};L="TierSizeMax(GB)"}, @{E={$_.TierSizeDivisor/1GB};L="TierSizeDivisor(GB)"} -AutoSize
Get-StorageTierSupportedSize Capacity | ft @{E={$_.TierSizeMin/1GB};L="TierSizeMin(GB)"}, @{E={$_.TierSizeMax/1GB};L="TierSizeMax(GB)"}, @{E={$_.TierSizeDivisor/1GB};L="TierSizeDivisor(GB)"} -AutoSize
Get-StorageTier -FriendlyName MAP-Volume-MirrorOnSSD | Resize-StorageTier -Size 300GB
Get-StorageTier -FriendlyName MAP-Volume-ParityOnHDD | Resize-StorageTier -Size 1.2TB
Get-StorageTier -FriendlyName MAP-Volume*
# Expand the partition and volume
Get-Volume M
$VirtualDisk = Get-VirtualDisk MAP-Volume
$Partition = $VirtualDisk | Get-Disk | Get-Partition | Where PartitionNumber -Eq 2
$Partition | Resize-Partition -Size ($Partition | Get-PartitionSupportedSize).SizeMax
Get-Volume M
# Expand Storage Pool
Get-StoragePool -FriendlyName Storage*
Get-PhysicalDisk | Sort-Object -Property CanPool | ft DeviceId, MediaType, CanPool, HealthStatus, Usage, Size -AutoSize
Update-StorageBusCache
Get-StoragePool -FriendlyName Storage*
Get-StorageBusBinding
Get-StoragePool -FriendlyName Storage* | Optimize-StoragePool
Get-StorageJob
# Retire and remove the fail disk
Get-StoragePool -FriendlyName Storage*
Get-VirtualDisk
Get-PhysicalDisk | Sort-Object -Property HealthStatus | ft DeviceId, MediaType, CanPool, OperationalStatus, HealthStatus, Usage, Size -AutoSize
$FailedDisk = Get-PhysicalDisk | Where-Object -Property HealthStatus -ne Healthy
$FailedDisk | Set-PhysicalDisk -Usage Retired
Get-StoragePool –FriendlyName Storage* | Get-Virtualdisk | Repair-VirtualDisk -Asjob
Remove-PhysicalDisk -PhysicalDisks (Get-PhysicalDisk | ? OperationalStatus -eq "Lost Communication") -StoragePoolFriendlyName "Storage Bus Cache on SBC-LAB"

SBC Lab for Azure VM


# ===========================================================================
# Author: Weithenn Wang (weithenn at weithenn.org)
# Version: v0.1 - July 26, 2022
# Description: Windows Server 2022 Single Node Caching/Tiering for Azure VM
# ===========================================================================
# Install the Failover Clustering feature
Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools
# Check physical disk
Get-PhysicalDisk | Sort-Object -Property Size
# Check configurable field of the SBC(Storage Bus Cache)
Get-StorageBusCache
# Import the SBC module
Import-Module StorageBusCache
# Enable SBC feature (For Nested VM)
Enable-StorageBusCache -AutoConfig:0
Get-StorageBusCache
# Check physical disk, storage bus disk, and storage bus binding (For Nested VM)
Get-PhysicalDisk | Sort-Object -Property Size
Get-PhysicalDisk | Where Size -eq "512GB" | Set-PhysicalDisk -MediaType SSD
Get-PhysicalDisk | Where Size -eq "4TB" | Set-PhysicalDisk -MediaType HDD
Get-PhysicalDisk | Sort-Object -Property Size
Get-StorageBusDisk | Sort-Object Number
# Create Storage Pool (For Nested VM)
New-StoragePool -FriendlyName SBC-Pool -StorageSubsystemFriendlyName "Windows Storage*" -PhysicalDisks (Get-PhysicalDisk -CanPool $True)
Update-StorageBusCache
# Create 1TB MAP(Mirror-Accelerated Parity) volume with a Mirror:Parity ratio of 20:80
New-Volume -FriendlyName "MAP-Volume" -FileSystem ReFS -StoragePoolFriendlyName SBC-Pool -StorageTierFriendlyNames MirrorOnSSD, ParityOnHDD -StorageTierSizes 200GB, 800GB
# Set an MAP-Volume partition and drive letter
Get-VirtualDisk
Get-Disk -FriendlyName "MAP-Volume"
Get-Partition -DiskNumber 8
Get-Partition -DiskNumber 8 -PartitionNumber 2 | Set-Partition -NewDriveLetter M
Get-Volume -FriendlyName "MAP-Volume"
# Expand the virtual disk with storage tiers
Get-StorageTier -FriendlyName MAP-Volume*
Get-StorageTierSupportedSize Performance | ft @{E={$_.TierSizeMin/1GB};L="TierSizeMin(GB)"}, @{E={$_.TierSizeMax/1GB};L="TierSizeMax(GB)"}, @{E={$_.TierSizeDivisor/1GB};L="TierSizeDivisor(GB)"} -AutoSize
Get-StorageTierSupportedSize Capacity | ft @{E={$_.TierSizeMin/1GB};L="TierSizeMin(GB)"}, @{E={$_.TierSizeMax/1GB};L="TierSizeMax(GB)"}, @{E={$_.TierSizeDivisor/1GB};L="TierSizeDivisor(GB)"} -AutoSize
Get-StorageTier -FriendlyName MAP-Volume-MirrorOnSSD | Resize-StorageTier -Size 300GB
Get-StorageTier -FriendlyName MAP-Volume-ParityOnHDD | Resize-StorageTier -Size 1.2TB
Get-StorageTier -FriendlyName MAP-Volume*
# Expand the partition and volume
Get-Volume M
$VirtualDisk = Get-VirtualDisk MAP-Volume
$Partition = $VirtualDisk | Get-Disk | Get-Partition | Where PartitionNumber -Eq 2
$Partition | Resize-Partition -Size ($Partition | Get-PartitionSupportedSize).SizeMax
Get-Volume M
# Expand Storage Pool
Get-StoragePool -FriendlyName SBC-Pool
Get-PhysicalDisk | Sort-Object -Property CanPool
Get-PhysicalDisk | Where Size -eq "4TB" | Set-PhysicalDisk -MediaType HDD
$PDToAdd = Get-PhysicalDisk -CanPool $True
Add-PhysicalDisk -StoragePoolFriendlyName SBC-Pool -PhysicalDisks $PDToAdd
Get-StoragePool -FriendlyName SBC-Pool
Get-StoragePool -FriendlyName SBC-Pool | Optimize-StoragePool
Get-StorageJob
# Retire and remove the fail disk
Get-StoragePool -FriendlyName SBC-Pool
Get-VirtualDisk
Get-PhysicalDisk | Sort-Object -Property HealthStatus | ft DeviceId, MediaType, CanPool, OperationalStatus, HealthStatus, Usage, Size -AutoSize
$FailedDisk = Get-PhysicalDisk | Where-Object -Property HealthStatus -ne Healthy
$FailedDisk | Set-PhysicalDisk -Usage Retired
Get-StoragePool –FriendlyName SBC-Pool | Get-Virtualdisk | Repair-VirtualDisk -Asjob
Get-StorageJob
Get-PhysicalDisk | Sort-Object -Property HealthStatus | ft DeviceId, MediaType, CanPool, OperationalStatus, HealthStatus, Usage, Size -AutoSize
Remove-PhysicalDisk -PhysicalDisks (Get-PhysicalDisk | ? OperationalStatus -eq "Lost Communication") -StoragePoolFriendlyName "SBC-Pool"
# Disable SBC and clean all disk
Disable-StorageBusCache
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 | Where Number -Ne $Null | Where IsBoot -Ne $True | Where IsSystem -Ne $True | Where PartitionStyle -Eq RAW | Group -NoElement -Property FriendlyName


文章標籤: ,