活動簡介
儘管人們都期盼疫情早日告終,但不幸的,你我與病毒共存、已經邁入第三個年頭,舉凡停工、國際邊境封閉、原物料供應斷鏈、砍單延單頻仍等等情況,至今依舊時有所聞;換言之,近年崛起的全球供應鏈短鏈化、零接觸商機、混合式辦公等等,仍將繼續成為常態、而不只是過度場景。
假使到了今日,企業依然與地端機房、傳統 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。
現在,就讓我們擁抱雲邊端科技,以堅強的數位力來強化營運韌性,迎接未來所有變局。
活動資訊
- 日期: 2022 年 7 月 26 日 (二)
- 時間: 09:00 - 17:00
- 地點: 臺北國際會議中心 (TICC)
- 報名: 活動報名
- 議程: 大會議程表
站長議程和 Hands-On Lab
站長當天議程簡報
站長帶當天與會朋友實作的工作坊簡報
無法到場,但是對於
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? 請參考下列影片
實作 PowerShell
因為,目前在 Azure VM 環境中,新增 SSD/HDD 暫時還沒有 Serial Number 和 Media
Type,所以會有二個不同的實作 PowerShell,有興趣的朋友,參考看看。
SBC Lab for Physical Server
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# ================================================================================== | |
# 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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# =========================================================================== | |
# 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 |