ด้วยเวอร์ชันโปรโตคอล SMB ที่เปิดตัวใน Windows Server 2022 และ Windows 11 คุณสามารถใช้การบีบอัด SMB แบบอินไลน์ได้ คุณสมบัติเมื่อคัดลอก ย้าย หรือเปิดไฟล์ผ่านเครือข่าย ซึ่งช่วยให้ถ่ายโอนไฟล์ได้เร็วขึ้น ลดแบนด์วิดท์และเวลาแฝงของการทำงานของเครือข่ายเมื่อถ่ายโอนไฟล์ขนาดใหญ่ผ่านเครือข่าย (เช่น ไฟล์ดิสก์ VM, อิมเมจ ISO เป็นต้น) ในบทความนี้ เราจะแสดงวิธีเปิดใช้งานและกำหนดค่าการบีบอัด SMB สำหรับโฟลเดอร์ที่ใช้ร่วมกันใน Windows
ด้วยการใช้การบีบอัด SMB (อย่าผสมผสานกับการบีบอัด NTFS) คุณไม่จำเป็นต้องใช้เครื่องมือของบริษัทอื่นเพื่อบีบอัดไฟล์ล่วงหน้าก่อนที่จะถ่ายโอนผ่านเครือข่ายที่ช้า (หรือตามปริมาณข้อมูล) อัลกอริทึมการบีบอัดเริ่มต้นคือ XPRESS (LZ77)
. คุณยังสามารถเปิดใช้งาน XPRESS Huffman (LZ77+Huffman)
, LZNT1
, หรือ PATTERN_V1*
อัลกอริธึมการบีบอัดใน Windows
คุณสามารถเปิดใช้งานการบีบอัด SMB ได้ทั้งทางฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์ SMB
ใน Windows Server 2022 คุณสามารถเปิดใช้งานการบีบอัด SMB ได้สองวิธี:
- การใช้ Windows Admin Center (WAC):ไฟล์และการแชร์ไฟล์ -> การแชร์ไฟล์ -> เลือกโฟลเดอร์แชร์เครือข่ายแล้วทำเครื่องหมายที่ บีบอัดข้อมูล ตัวเลือกในการตั้งค่า;
- การใช้ PowerShell:เมื่อสร้างโฟลเดอร์แชร์ใหม่ (
New-SmbShare -Name "Public" -Path "E:\Public" -CompressData $true
) หรือสำหรับการแชร์ที่มีอยู่ (Set-SmbShare -Name "Public" -CompressData $true
). คุณสามารถแสดงรายการไดเร็กทอรีทั้งหมดที่เปิดใช้งานการบีบอัด SMB:Get-SmbShare -CompressData $true
การบีบอัด SMB อาจถูกเปิดใช้งานบนฝั่งไคลเอ็นต์ ถ้าอย่างนั้นฝั่งเซิร์ฟเวอร์จะรองรับการบีบอัด SMB หรือไม่
คำสั่งต่อไปนี้อนุญาตให้แมปไดรฟ์เครือข่ายที่ใช้ร่วมกันใน Windows 11 โดยเปิดใช้งานการบีบอัด SMB:
net use * \\munfs01\images /requestcompression:yes
หรือ:
New-SmbMapping -LocalPath "U:" -RemotePath "\\munfs01\images" -CompressNetworkTraffic $true
มาลองวัดความเร็วและเวลาของการถ่ายโอนไฟล์ VMDK (VMware virtual machine disk) โดยเปิดใช้งานการบีบอัด SMB คุณสามารถสร้างโฟลเดอร์ที่ใช้ร่วมกันได้ทั้งที่มีและไม่มีตัวเลือกการบีบอัด SMB หรือใช้ /compress
ตัวเลือกของ robocopy เพื่อบังคับให้คัดลอกไฟล์โดยใช้การบีบอัด SMB ต่อไปนี้คือตัวอย่างคำสั่ง:
robocopy z:\ c:\VM\without_smb_compression.vmdk srv02.vmdk
robocopy z:\ c:\VM\with_smb_compression.vmdk srv02.vmdk /compress
ในตัวอย่างของฉัน ใช้เวลาน้อยลง 20% ในการคัดลอกไฟล์ VMDK 3GB ที่มีการบีบอัด SMB เมื่อเทียบกับการไม่ได้ใช้งาน (29 วินาทีเทียบกับ 37 วินาที)
ใน Windows 11 และ Windows Server 2022 เวอร์ชัน RTM จะใช้การบีบอัด SMB สำหรับไฟล์ทั้งหมดโดยไม่คำนึงถึงขนาด
หากต้องการใช้การบีบอัด SMB สำหรับการถ่ายโอนไฟล์เสมอ คุณสามารถตั้งค่าพารามิเตอร์ EnableCompressedTraffic = 1
ภายใต้คีย์รีจิสทรี HKLM\System\CurrentControlSet\Services\LanManWorkstation\Parameters คุณสามารถตั้งค่าพารามิเตอร์รีจิสทรีนี้โดยใช้ PowerShell:
Set-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\LanManWorkstation\Parameters\ -Name EnableCompressedTraffic -Value 1
หากคุณต้องการใช้การบีบอัด SMB กับไฟล์ขนาดใหญ่เท่านั้น (มากกว่า 100 MB) ให้ตั้งค่าแอตทริบิวต์ต่อไปนี้ในคีย์รีจิสทรีเดียวกัน:
- การบีบอัดได้SamplingSize =524288000
- เกณฑ์ที่บีบอัดได้ =104857600
หากคุณต้องการปิดการใช้งานการบีบอัด SMB บน Windows โดยสมบูรณ์ ให้ตั้งค่า DisableCompression = 1
:
Set-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\LanManWorkstation\Parameters\ -Name DisableCompressedTraffic -Value 1
หรือใช้คำสั่งด้านล่าง:
Set-SmbClientConfiguration -DisableCompression $true
คุณสมบัติการบีบอัด SMB เข้ากันได้กับการเข้ารหัสและการเซ็นชื่อ SMB, SMB บน QUIC, หลายช่องสัญญาณ SMB และ Hyper-V Live Migration ยังไม่รองรับ SMB Direct และ RDMA คุณสามารถใช้ /compress
. ใหม่ ตัวเลือกในเครื่องมือ Robocopy และ Xcopy เพื่อบังคับให้ใช้การบีบอัด SMB เมื่อคัดลอกไฟล์ผ่านเครือข่าย