विंडोज सर्वर 2022 और विंडोज 11 में पेश किए गए SMB प्रोटोकॉल संस्करण के साथ, आप नेटवर्क पर फ़ाइलों को कॉपी, स्थानांतरित, या खोलते समय इंलाइन SMB संपीड़न सुविधा का उपयोग कर सकते हैं। यह बड़े फ़ाइलों को नेटवर्क पर स्थानांतरित करते समय (जैसे VM डिस्क फ़ाइलें, ISO इमेज, आदि) फ़ाइल ट्रांसफर को तेज़ करने, बैंडविड्थ और नेटवर्क ऑपरेशन विलंबता को कम करने की अनुमति देता है। इस लेख में, हम दिखाएंगे कि विंडोज में शेयर्ड फ़ोल्डर्स के लिए SMB संपीड़न को कैसे सक्षम और कॉन्फ़िगर करें।
SMB संपीड़न के उपयोग के लिए धन्यवाद (इसे NTFS संपीड़न के साथ न मिलाएं), अब आपको धीमे (या मीटर्ड) नेटवर्क पर ट्रांसफर करने से पहले फ़ाइलों को प्री-कंप्रेस करने के लिए थर्ड-पार्टी टूल्स का उपयोग करने की आवश्यकता नहीं है। डिफ़ॉल्ट संपीड़न एल्गोरिदम XPRESS (LZ77) है। आप विंडोज में XPRESS Huffman (LZ77+Huffman), LZNT1, या PATTERN_V1* संपीड़न एल्गोरिदम भी सक्षम कर सकते हैं।
आप SMB संपीड़न को क्लाइंट-साइड और SMB सर्वर-साइड दोनों पर सक्षम कर सकते हैं।
विंडोज सर्वर 2022 में, आप SMB संपीड़न को दो तरीकों से सक्षम कर सकते हैं:
- विंडोज एडमिन सेंटर (WAC) का उपयोग करके: फ़ाइलें और फ़ाइल शेयरिंग -> फाइल शेयर्स -> एक नेटवर्क शेयर्ड फ़ोल्डर चुनें और इसकी सेटिंग्स में डेटा संपीड़ित करें विकल्प चेक करें;
- पावरशेल का उपयोग करके: नया शेयर्ड फ़ोल्डर बनाते समय (
New-SmbShare -Name "Public" -Path "E:\Public" -CompressData $true) या मौजूदा शेयर के लिए (Set-SmbShare -Name "Public" -CompressData $true)। आप उन सभी निर्देशिकाओं को सूचीबद्ध कर सकते हैं जिन पर SMB संपीड़न सक्षम है:Get-SmbShare -CompressData $true
SMB संपीड़न को क्लाइंट-साइड पर भी सक्षम किया जा सकता है। तब इससे कोई फर्क नहीं पड़ता कि सर्वर-साइड SMB संपीड़न का समर्थन करता है या नहीं।
निम्न कमांड्स विंडोज 11 में SMB संपीड़न सक्षम के साथ एक शेयर्ड नेटवर्क ड्राइव मैप करने की अनुमति देती हैं:
net use * \\munfs01\images /requestcompression:yes
या:
New-SmbMapping -LocalPath "U:" -RemotePath "\\munfs01\images" -CompressNetworkTraffic $true
आइए SMB संपीड़न सक्षम के साथ VMDK (VMware वर्चुअल मशीन डिस्क) फ़ाइल ट्रांसफर की गति और समय को मापने का प्रयास करें। आप SMB संपीड़न विकल्प सक्षम और बिना सक्षम के एक शेयर्ड फ़ोल्डर बना सकते हैं, या किसी फ़ाइल को SMB संपीड़न का उपयोग करके जबरन कॉपी करने के लिए robocopy के /compress विकल्प का उपयोग कर सकते हैं। यहां कमांड्स के उदाहरण हैं:
robocopy z:\ c:\VM\without_smb_compression.vmdk srv02.vmdk
robocopy z:\ c:\VM\with_smb_compression.vmdk srv02.vmdk /compress
मेरे उदाहरण में, SMB संपीड़न के साथ 3GB VMDK फ़ाइल कॉपी करने में 20% कम समय लगा (29 सेकंड बनाम 37 सेकंड)।
विंडोज 11 और विंडोज सर्वर 2022 के RTM संस्करणों में, SMB संपीड़न का उपयोग फ़ाइल आकार की परवाह किए बिना सभी फ़ाइलों के लिए किया जाता है।
फ़ाइल ट्रांसफर के लिए हमेशा SMB संपीड़न का उपयोग करने के लिए, आप रजिस्ट्री कुंजी HKLM\System\CurrentControlSet\Services\LanManWorkstation\Parameters के तहत पैरामीटर EnableCompressedTraffic = 1 सेट कर सकते हैं। आप इस रजिस्ट्री पैरामीटर को पावरशेल का उपयोग करके सेट कर सकते हैं:
Set-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\LanManWorkstation\Parameters\ -Name EnableCompressedTraffic -Value 1
यदि आप चाहते हैं कि SMB संपीड़न केवल बड़ी फ़ाइलों (100 MB से अधिक) पर लागू हो, तो उसी रजिस्ट्री कुंजी में निम्न विशेषताएं सेट करें:
- CompressibilitySamplingSize = 524288000
- CompressibleThreshold = 104857600
यदि आप CompressibleThreshold = 0 और CompressibilitySamplingSize = 4294967295 सेट करते हैं, तो SMB संपीड़न का उपयोग तब किया जाएगा जब आप नेटवर्क पर SMB फ़ोल्डर में किसी भी फ़ाइल को एक्सेस करेंगे।
यदि आप विंडोज पर SMB संपीड़न के उपयोग को पूरी तरह से अक्षम करना चाहते हैं, तो DisableCompression = 1 सेट करें:
Set-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\LanManWorkstation\Parameters\ -Name DisableCompressedTraffic -Value 1
या नीचे दी गई कमांड का उपयोग करें:
Set-SmbClientConfiguration -DisableCompression $true
SMB संपीड़न सुविधा SMB एन्क्रिप्शन और साइनिंग, QUIC पर SMB, SMB मल्टीचैनल, और Hyper-V लाइव माइग्रेशन के साथ संगत है। SMB डायरेक्ट और RDMA अभी तक समर्थित नहीं हैं। आप Robocopy और Xcopy टूल्स में नए /compress विकल्प का उपयोग नेटवर्क पर फ़ाइलें कॉपी करते समय SMB संपीड़न के उपयोग को बाध्य करने के लिए कर सकते हैं।