ट्रिम (कंप्यूटिंग)
This article is missing information about SMR drives (similar append-only zone problem).April 2020) ( |
एक छोटा नियंत्रण प्रचालन तंत्र को एक ठोस-राज्य अभियान को सूचित करने की अनुमति देता है जो आंकड़े के खंड को अब उपयोग में नहीं माना जाता है और इसलिए आंतरिक रूप से मिटाया जा सकता है[1] तथा एसएसडीएस के आने के तुरंत बाद छोटे टुकड़े को उपस्थित किया गया था क्योंकि एसएसडीस का निम्न-स्तरीय संचालन कठिन अभियान से बहुत अलग होता है जिस विशिष्ट तरीके से प्रचालन तंत्र शल्य विज्ञान को संभालता है वैसे ही विलोपन और प्रारूप के परिणामस्वरूप एसएसडीएस पर लिखने के संचालन के अप्रत्याशित प्रगतिशील प्रदर्शन में गिरावट आई है।[2] जो कि कोटि-छांट एसएसडी को अधिक कुशलता से कचरा संग्रह संभालने में सक्षम बनाता है तथा यह सम्मिलित खंडों में भविष्य के लेखन कार्यों को धीमा कर देगाCite error: Closing </ref>
missing for <ref>
tag जबकि कोटि-छांट की शुरुआत से पहले कुछ अभियान को एक नई स्थिति में फिर से स्थापित करने के लिए उपकरण पहले से ही उपलब्ध थे और वे अभियान पर सभी आंकड़े को भी हटा देते हैं जिससे चल रहे अनुकूलन के लिए उनका उपयोग करना अव्यावहारिक हो जाता है और 2024 में एसएसडी में कुछ संचिका प्रणाली के लिए आंतरिक कचरा संग्रह तंत्र था जो कोटि छांट से स्वतंत्र रूप से काम करता था यद्यपि इसने कोटि छांट का समर्थन नहीं करने वाले प्रचालन तंत्र के तहत भी अपने जीवनकाल और प्रदर्शन को सफलतापूर्वक बनाए रखा लेकिन इसमें तेज़ बिक्री के बढ़े हुए लेखन प्रवर्धन और पहनने की कमियां थीं[3] तथा कोटि छांट भी व्यापक रूप से है सिंगल चुंबकीय रिकॉर्डिंग (SMR) ठोस अभियान पर उपयोग किया जाता है।[4]
पृष्ठभूमि
जिस तरह से कई संचिका प्रणाली आंकड़े खंड को उपयोग में नहीं भंडारण साधन के रूप में निशान करके विलोपन कार्यवाही को संभालते हैं[5][6] लेकिन ठोस अभियान भी यह नहीं जानते हैं कि कौन से पेज वास्तव में उपयोग में हैं और किसे खाली स्थान माना जा सकता है और अधिलेखित कार्यवाही के विपरीत एक विलोपन में आंकड़े वाले क्षेत्रों में भौतिक लेखन सम्मिलित नहीं होगा जबकि एक सामान्य एसएसडी को अप्रयुक्त खंडों की सूची सहित संचिका प्रणाली संरचनाओं का कोई ज्ञान नहीं है इसलिए भंडारण माध्यम इस बात से अनजान रहता है कि खंड उपलब्ध हो गए हैं जबकि यह अक्सर विद्युत अनम्य डिस्क से फाइलों श्रेणियों को पुनर्प्राप्त करने के लिए हटाना उपकरण को सक्षम करता है[6][7] प्रचालन तंत्र द्वारा श्रेणियों को हटाए जाने के रूप में रिपोर्ट किए जाने के बाद भी इसका अर्थ यह है कि जब प्रचालन तंत्र बाद में किसी एक क्षेत्र में सही कार्यवाही करता है जिसे वह मुक्त स्थान मानता है तो यह प्रभावी रूप से एक अधिलेखित कार्यवाही बन जाता है भंडारण माध्यम के दृष्टिकोण से चुंबकीय चक्र के लिए उपस्थित आंकड़े का अधिलेखित एक खाली क्षेत्र में लिखने से अलग नहीं है लेकिन कुछ एसएसडी निम्नतम स्तर पर कैसे काम करते हैं एक अधिलेखित एक खाली पृष्ठ में आंकड़े लिखने की तुलना में महत्वपूर्ण उपरि उत्पन्न करता है संभावित रूप से अपंग लेखन प्रदर्शन करता है[6][8] एसएसडी आंकड़े को फ्लैश मेमोरी सेल में स्टोर करते हैं जो आमतौर पर 4 से 16 किबिबाइट के पेजों में समूहित होते हैं, आमतौर पर 128 से 512 पेज के ब्लॉक में एक साथ समूहीकृत होते हैं। उदाहरण: 512 kiB ब्लॉक करता है जो प्रत्येक 4 kiB के 128 पृष्ठों को समूहित करता है।[5][9]फ्लैश मेमोरी #NAND फ्लैश सेल को सीधे तभी लिखा जा सकता है जब वे खाली हों। यदि उनमें डेटा होता है, तो सामग्री को लिखने के ऑपरेशन से पहले मिटा दिया जाना चाहिए। एक SSD राइट ऑपरेशन एक पेज पर किया जा सकता है लेकिन, हार्डवेयर सीमाओं के कारण, इरेज़ कमांड हमेशा पूरे ब्लॉक को प्रभावित करते हैं;[9] परिणामस्वरूप, SSD पर खाली पृष्ठों पर डेटा लिखना बहुत तेज़ होता है, लेकिन एक बार पहले लिखे गए पृष्ठों को अधिलेखित करने की आवश्यकता होने पर यह काफी धीमा हो जाता है। चूंकि पृष्ठ में सेल्स को फिर से लिखे जाने से पहले मिटाने की आवश्यकता होती है, लेकिन केवल पूरे ब्लॉक मिटाए जा सकते हैं, एक ओवरराइट पढ़ने-मिटाने-संशोधित-लिखने का चक्र शुरू करेगा:[5][10] पूरे ब्लॉक की सामग्री को कैश में संग्रहीत किया जाता है, फिर पूरे ब्लॉक को एसएसडी से मिटा दिया जाता है, फिर ओवरराइट किए गए पेज को कैश्ड ब्लॉक में लिखा जाता है, और उसके बाद ही पूरे अपडेट किए गए ब्लॉक को फ्लैश माध्यम में लिखा जा सकता है। इस घटना को लेखन प्रवर्धन के रूप में जाना जाता है।
ऑपरेशन
टीआरआईएम कमांड एक ऑपरेटिंग सिस्टम को उन पृष्ठों के एसएसडी को सूचित करने में सक्षम बनाता है जिनमें अब वैध डेटा नहीं है। फ़ाइल विलोपन ऑपरेशन के लिए, ऑपरेटिंग सिस्टम फ़ाइल के क्षेत्रों को नए डेटा के लिए मुफ़्त के रूप में चिह्नित करेगा, फिर SSD को TRIM कमांड भेजें। ट्रिमिंग के बाद, फ्लैश मेमोरी के एक पृष्ठ पर नया डेटा लिखते समय एसएसडी ब्लॉक की किसी भी सामग्री को संरक्षित नहीं करेगा, जिसके परिणामस्वरूप कम लेखन प्रवर्धन (कम लेखन), उच्च लेखन थ्रूपुट (पढ़ने-मिटाने-संशोधित अनुक्रम की कोई आवश्यकता नहीं), इस प्रकार ड्राइव जीवन में वृद्धि।
अलग-अलग एसएसडी कमांड को कुछ अलग तरीके से लागू करते हैं, इसलिए प्रदर्शन अलग-अलग हो सकता है।[11][7]
TRIM SSD को एक तार्किक ब्लॉक एड्रेसिंग क्षेत्र को अमान्य के रूप में चिह्नित करने के लिए कहता है और बाद में इस क्षेत्र पर पढ़ने से कोई सार्थक डेटा वापस नहीं आएगा। बहुत ही कम समय के लिए, डेटा अभी भी आंतरिक रूप से फ्लैश पर रह सकता है। हालाँकि, TRIM कमांड जारी होने और कचरा संग्रह होने के बाद, यह बहुत कम संभावना है कि एक फोरेंसिक वैज्ञानिक भी डेटा को पुनर्प्राप्त करने में सक्षम होगा।[12]
कार्यान्वयन
ऑपरेटिंग सिस्टम का समर्थन
TRIM कमांड तभी फायदेमंद होता है जब ड्राइव इसे लागू करता है और ऑपरेटिंग सिस्टम इसका अनुरोध करता है। नीचे दी गई तालिका प्रत्येक उल्लेखनीय ऑपरेटिंग सिस्टम और कमांड का समर्थन करने वाले पहले संस्करण की पहचान करती है। इसके अतिरिक्त, एटीए मानक में टीआरआईएम कमांड को शामिल करने से पहले डिजाइन किए गए पुराने सॉलिड-स्टेट ड्राइव को फर्मवेयर अपडेट की आवश्यकता होगी, अन्यथा नए कमांड को नजरअंदाज कर दिया जाएगा। हालांकि, ट्रिमिंग का समर्थन करने के लिए हर ड्राइव को अपग्रेड नहीं किया जा सकता है।
TRIM के लिए समर्थन इस बात से भी भिन्न होता है कि ऑपरेटिंग सिस्टम पर विशेष फाइलसिस्टम ड्राइवर क्या करने में सक्षम है, क्योंकि डिस्क के किन हिस्सों में खाली स्थान है, इसकी समझ के साथ केवल एक प्रोग्राम सुरक्षित रूप से कमांड जारी कर सकता है, और सिस्टम स्तर पर यह क्षमता होती है। फाइलसिस्टम ड्राइवर में ही झूठ बोलने के लिए।
Operating System | Supported since | Notes |
---|---|---|
DragonFly BSD | [13] | May 2011|
FreeBSD | [14] | 8.1 – July 2010Support was added at the block device layer in 8.1. Filesystem support was added in FreeBSD 8.3 and FreeBSD 9, beginning with UFS.[15] ZFS trimming support was added in FreeBSD 9.2.[16][17] FreeBSD 10 supports trimming on software RAID configurations.[18] |
NetBSD | [19] | October 2012|
Linux | [20] | 2.6.28–25 December 2008Initial support for discard operations was added for FTL NAND flash devices in 2.6.28. Support for the ATA TRIM command was added in 2.6.33.[21]
Not all filesystems make use of trim. Among the filesystems that can issue trim requests automatically are ext4,[22] Btrfs,[23] FAT, GFS2, JFS,[24] XFS,[25] and NTFS-3G. However, in some distributions, this is disabled by default due to performance concerns,[26] in favor of scheduled trimming on supported SSDs.[27] Ext3, NILFS2 and OCFS2 offer ioctls to perform offline trimming. The TRIM specification calls for supporting a list of trim ranges, but as of kernel 3.0 trim is only invoked with a single range that is slower.[28] In many newer Linux distributions, systemd provides |
macOS | [30] | 10.6.8–23 June 2011Although the AHCI block device driver gained the ability to display whether a device supports the TRIM operation in 10.6.6 (10J3210),[31] the functionality itself remained inaccessible until 10.6.8, when the TRIM operation was exposed via the IOStorageFamily and filesystem (HFS+) support was added.[citation needed] Until 10.10.4, Mac OS X natively enabled TRIM only for Apple-branded SSDs; third-party utilities are available to enable it for other brands. Old third party TRIM drivers stopped working as of the Yosemite update.[32] Updated drivers now exist that work with OS X Yosemite.[33][34] In Mac OS X update 10.10.4, Apple added a command line utility, trimforce, that can be used to enable TRIM on third-party SSDs.[35] |
Microsoft Windows | [36][37] | Windows 7 and Windows Server 2008 R2 – October 2009Windows 7 initially supported TRIM only for drives in the AT Attachment family including Parallel ATA and Serial ATA, and did not support this command for any other devices including Storport PCI-Express SSDs even if the device itself would accept the command.[38] It is confirmed that with native Microsoft drivers the TRIM command works on Windows 7 in AHCI and legacy IDE / ATA Mode.[39] Windows 8 and later Windows operating systems support the unmap command for devices that use the SCSI driver stack, including USB Attached SCSI Protocol (UASP). Windows 8.1 and later Windows operating systems support the TRIM command for NVM Express SSDs. Microsoft has released an update for Windows 7 that adds NVM Express support including TRIM for PCIe SSDs.[40][41]
TRIM is known to be supported for ReFS and NTFS, both of which implement a DisableDeleteNotify switch for disabling it.[42] Sources disagree on whether TRIM support exists for other filesystems. |
OpenSolaris | [43] | July 2010|
Android | [44] – 24 July 2013[45] | 4.3Runs fstrim automatically up to once every 24 hours if the device has been idle for at least an hour and is at least 80% charged (30% if connected to a charger).[44]
|
RAID मुद्दे
As of January 2017[update], अधिकांश हार्डवेयर-आधारित RAID तकनीकों में TRIM कमांड के लिए समर्थन लागू नहीं किया गया है। हालाँकि, सॉफ़्टवेयर RAID कार्यान्वयन में अक्सर TRIM के लिए समर्थन शामिल होता है।
विंडोज
Windows 10 RAID वॉल्यूम को कॉन्फ़िगर करते समय ऑप्टिमाइज़ ड्राइव विकल्प का उपयोग करके SSD ID वॉल्यूम में TRIM के लिए समर्थन प्रदान करता है।
मैकओएस
macOS RAID ड्राइवर TRIM का समर्थन नहीं करता है। यह Mac OS X के 10.7 से macOS 10.12.x के सभी संस्करणों के लिए सही है।
TRIM को RAID (0,1,4,5 और 10) वॉल्यूम के लिए समर्थित किया जाता है, जब गैर-Apple SSD उपकरणों के साथ TRIM समर्थन सहित तृतीय-पक्ष सॉफ्टराइड® एप्लिकेशन का उपयोग किया जाता है। (नोट: गैर-Apple SSD डिवाइस के लिए TRIM को विशेष रूप से टर्मिनल कमांड sudo trimforce enable का उपयोग करके सक्षम किया जाना चाहिए)
लिनक्स
टीआरआईएम लिनक्स कर्नेल के डिवाइस मैपर के जनवरी-2011 के रिलीज के बाद RAID वॉल्यूम के साथ उपलब्ध है, जो BIOS-सहायता प्राप्त नकली हार्डवेयर RAID समर्थन को लागू करता है, और जो अब RAID सरणी पर मौजूद फाइल सिस्टम से किसी भी टीआरआईएम अनुरोध से गुजरता है।[46] dmraid के साथ भ्रमित न होने के लिए, Linux के सामान्य-उद्देश्य सॉफ़्टवेयर RAID सिस्टम, mdadm, बैच-आधारित के लिए प्रयोगात्मक समर्थन है (फ़ाइल हटाने के बजाय, लाइव होने पर) RAID 1 सरणियों पर TRIM जब सिस्टम समय-समय पर फ़ाइल सिस्टम पर mdtrim उपयोगिता चलाने के लिए कॉन्फ़िगर किया जाता है (यहां तक कि ext3 जैसे मूल TRIM समर्थन के बिना)।[47] लिनक्स के बाद के संस्करणों में, उदा। Red Hat Enterprise Linux 6.5 और बाद के संस्करण, mdraid वास्तविक समय में TRIM कमांड से वास्तव में गुजरने का समर्थन करता है, न कि केवल एक बैच जॉब के रूप में।[48] हालाँकि, Red Hat अधिकांश RAID तकनीकों के साथ SSDs पर सॉफ़्टवेयर RAID स्तर 1, 4, 5, और 6 का उपयोग करने के खिलाफ अनुशंसा करता है, क्योंकि आरंभीकरण के दौरान, अधिकांश RAID प्रबंधन उपयोगिताओं (जैसे Linux के mdadm) डिवाइस पर सभी ब्लॉकों को लिखते हैं ताकि यह सुनिश्चित हो सके कि चेकसम ( या ड्राइव-टू-ड्राइव सत्यापित करता है, RAID 1 और 10 के मामले में) ठीक से काम करता है, जिससे SSD को विश्वास हो जाता है कि अतिरिक्त क्षेत्र के अलावा अन्य सभी ब्लॉक उपयोग में हैं, प्रदर्शन में काफी गिरावट आई है।[49] दूसरी ओर, Red Hat SSDs पर लॉजिकल वॉल्यूम मैनेजर (लिनक्स)Linux) RAID के लिए RAID 1 या RAID 10 के उपयोग की अनुशंसा करता है, क्योंकि ये स्तर TRIM (लिनक्स शब्दावली में त्यागें) का समर्थन करते हैं, और LVM उपयोगिताएँ सभी ब्लॉकों को नहीं लिखती हैं। RAID 1 या RAID 10 वॉल्यूम बनाते समय।[48]
फर्मवेयर आधारित RAID
मार्च 2010 में थोड़े समय के लिए, उपयोगकर्ताओं को यह विश्वास दिलाया गया था कि विंडोज 7 में इंटेल रैपिड स्टोरेज टेक्नोलॉजी (RST) 9.6 (और बाद में) ड्राइवरों ने RAID वॉल्यूम पर TRIM का समर्थन किया था, लेकिन बाद में Intel ने स्पष्ट किया कि TRIM को BIOS सेटिंग्स के लिए समर्थित किया गया था। उन्नत होस्ट नियंत्रक इंटरफ़ेस मोड और RAID मोड, लेकिन यदि ड्राइव RAID वॉल्यूम का हिस्सा नहीं था।[50] अगस्त 2012 तक, इंटेल पुष्टि करता है कि रैपिड स्टोरेज टेक्नोलॉजी (RST) 11.2 ड्राइवरों के साथ 7-श्रृंखला चिपसेट Microsoft Windows 7 में RAID 0 के लिए TRIM का समर्थन करता है।[51] जबकि इंटेल ने 6-सीरीज़ चिपसेट के लिए समर्थन की पुष्टि नहीं की, RAID 0 वॉल्यूम पर TRIM को संशोधित RAID विकल्प ROM के साथ हार्डवेयर उत्साही लोगों द्वारा Z68, P67, और X79 चिपसेट पर काम करने के लिए दिखाया गया है।[52] यह अनुमान लगाया गया है कि 6-सीरीज़ चिपसेट के लिए आधिकारिक समर्थन की कमी सत्यापन लागत के कारण है[53] या उपभोक्ताओं को अपग्रेड करने के लिए प्रोत्साहित करने का प्रयास,[54] न कि तकनीकी कारणों से।
मदरबोर्ड पर X79 चिपसेट के साथ एक संशोधित विकल्प ROM की आवश्यकता का एक अपवाद है यदि निर्माता ने एक ROM स्विच जोड़ा है; यह RST और RST-E दोनों ROM को BIOS/UEFI के अंदर होने के लिए मजबूर करता है। यह RST-E ROM के बजाय RST ROM का उपयोग करने की अनुमति देता है, जिससे TRIM को कार्य करने की अनुमति मिलती है।[55] इंटेल नोट करता है कि ROM के समान संस्करण वाले ड्राइवर का उपयोग करके सर्वश्रेष्ठ प्रदर्शन प्राप्त किया जा सकता है; उदाहरण के लिए, यदि BIOS/UEFI में 11.0.0.0m विकल्प ROM है, तो 11.x संस्करण ड्राइवर का उपयोग किया जाना चाहिए।[56]
असमर्थित फ़ाइल सिस्टम को सक्षम करना
जहाँ फ़ाइल सिस्टम स्वचालित रूप से TRIM का समर्थन नहीं करता है, कुछ उपयोगिताएँ मैन्युअल रूप से ट्रिमिंग कमांड भेज सकती हैं। आमतौर पर वे निर्धारित करते हैं कि कौन से ब्लॉक मुक्त हैं और फिर इस सूची को ड्राइव में ट्रिमिंग कमांड की एक श्रृंखला के रूप में पास करते हैं। ये उपयोगिताएँ विभिन्न निर्माताओं से उपलब्ध हैं (जैसे इंटेल,[57] जी.स्किल रेफरी>"फाल्कन सीरीज के लिए wiper.exe". XtremeSystems. Retrieved 23 January 2010.</ref>), या सामान्य उपयोगिताओं के रूप में (v9.17 के बाद से Linux hdparm वाइपर में,[58][59] या mdtrim, जैसा कि उल्लेख किया गया है #RAID मुद्दे)। एचडीपार्म और एमडीट्रिम दोनों फाइल सिस्टम पर एक बड़ी फाइल आवंटित करके और इसे किस भौतिक स्थान को सौंपा गया था, को हल करके मुफ्त ब्लॉक ढूंढते हैं।
ऑपरेटिंग सिस्टम के बावजूद, ड्राइव यह पता लगा सकता है कि जब कंप्यूटर एक ब्लॉक में सभी-शून्य लिखता है, और शून्य के ब्लॉक को रिकॉर्ड करने के बजाय उस ब्लॉक को डी-आवंटित (ट्रिम) करता है। यदि किसी डी-आवंटित ब्लॉक को पढ़ना हमेशा शून्य देता है, तो यह शॉर्टकट उपयोगकर्ता के लिए पारदर्शी होता है, अप्रयुक्त क्षेत्रों में तेजी से लिखने के सामान्य लाभ के अलावा, सभी शून्य ब्लॉकों के तेजी से लेखन (और पढ़ने) को छोड़कर। ऑपरेटिंग सिस्टम डेटा वाइपिंग के लिए ऑल-जीरो नहीं लिखते हैं फ़ाइलें मिटाएँ या स्थान खाली करें, लेकिन कुछ उपयोगिताएँ ऐसा करती हैं।
हार्डवेयर समर्थन
एटीए
TRIM कमांड विनिर्देश[60] सूचना प्रौद्योगिकी मानकों के लिए अंतर्राष्ट्रीय समिति (INCITS) की तकनीकी समिति T13 के नेतृत्व में एटी अटैचमेंट (ATA) इंटरफ़ेस मानक के हिस्से के रूप में मानकीकृत किया गया है।[61] TRIM को DATA SET MANAGEMENT कमांड (opcode 06h) के ड्राफ्ट ACS-2 विनिर्देश के तहत लागू किया गया है।[62] ATA मानक समानांतर (IDE, PATA) और सीरियल (SATA) ATA हार्डवेयर दोनों द्वारा समर्थित है।
मूल ATA TRIM कमांड की एक खामी यह है कि इसे एक गैर-कतारबद्ध कमांड के रूप में परिभाषित किया गया था और इसलिए कतारबद्ध पढ़ने और लिखने के कार्यों के सामान्य वर्कलोड के साथ आसानी से मिश्रित नहीं किया जा सकता था। SATA 3.1 ने इसका समाधान करने के लिए एक पंक्तिबद्ध TRIM कमांड प्रस्तुत किया।[63] ATA IDENTIFY DEVICE कमांड से लौटे SATA Words 69 और 169 द्वारा परिभाषित विभिन्न प्रकार के TRIM हैं:
- गैर-नियतात्मक TRIM: TRIM के बाद लॉजिकल ब्लॉक एड्रेसिंग (LBA) के लिए प्रत्येक रीड कमांड अलग डेटा लौटा सकता है।
- नियतात्मक TRIM (DRAT): TRIM के बाद LBA के लिए सभी पढ़े गए आदेश समान डेटा लौटाएंगे, या निर्धारित हो जाएंगे।
- TRIM (RZAT) के बाद नियतात्मक रीड ज़ीरो: TRIM के बाद LBA के लिए सभी रीड कमांड शून्य वापस आ जाएंगे।
SATA Word 105 में अतिरिक्त जानकारी है जो प्रति DATA SET MANAGEMENT कमांड के लिए 512-बाइट ब्लॉक की अधिकतम संख्या का वर्णन करती है जिसका एक ड्राइव समर्थन कर सकता है। आम तौर पर यह डिफ़ॉल्ट रूप से 8 (या 4 kB) होता है, लेकिन कई ड्राइव TRIM के लिए Microsoft Windows हार्डवेयर आवश्यकताओं को पूरा करने के लिए इसे घटाकर 1 कर देते हैं, कमांड पूरा करने का समय 20 ms या 8 ms × (LBA रेंज प्रविष्टियों की संख्या) से अधिक नहीं होना चाहिए, जो भी हो अधिक, और हमेशा 600 ms से कम होना चाहिए।[64] एक व्यक्तिगत एलबीए रेंज को एलबीए रेंज एंट्री कहा जाता है और इसे आठ बाइट्स द्वारा दर्शाया जाता है। एलबीए एलबीए रेंज एंट्री के पहले छह बाइट्स द्वारा व्यक्त किया गया है और रेंज की लंबाई शून्य-आधारित काउंटर है (उदाहरण के लिए, 0 = 0 और 1 = 1) शेष दो बाइट्स द्वारा दर्शाया गया है। यदि दो-बाइट श्रेणी की लंबाई शून्य है, तो LBA श्रेणी प्रविष्टि को पैडिंग के रूप में छोड़ दिया जाएगा।[65] इसका मतलब यह है कि टीआरआईएम रेंज के प्रत्येक 512-बाइट ब्लॉक के लिए जो एक डिवाइस का समर्थन करता है, अधिकतम 64 रेंज 32 एमबी या 2 जीबी है। यदि कोई डिवाइस 8 पर सैटा वर्ड 105 का समर्थन करता है तो उसे एक ही ट्रिम (डेटा सेट प्रबंधन) कमांड में 16 जीबी ट्रिम करने में सक्षम होना चाहिए।
एससीएसआई
SCSI UNMAP कमांड (TRIM का एक पूर्ण एनालॉग) और UNMAP फ्लैग सेट के साथ WRITE SAME कमांड (10 और 16 प्रकार) प्रदान करता है।[66]
एसडी/एमएमसी
MultiMediaCard और SD कार्ड ERASE (CMD38) कमांड ATA TRIM कमांड के समान कार्यक्षमता प्रदान करता है, हालाँकि इसके लिए आवश्यक है कि मिटाए गए ब्लॉकों को शून्य या एक के साथ अधिलेखित किया जाए। एक DISCARD सब-ऑपरेशन को eMMC 4.5 में और वैकल्पिक रूप से SDHC और SDXC कार्ड में परिभाषित किया गया है, जो कि ATA TRIM से अधिक निकटता से मेल खाता है, जिसमें छोड़े गए ब्लॉक की सामग्री को अनिश्चित माना जा सकता है (यानी, परवाह नहीं है)।
एनवीएम एक्सप्रेस
एनवीएम एक्सप्रेस कमांड सेट में एक जेनेरिक डेटासेट मैनेजमेंट कमांड सेट होता है, जो ब्लॉक रेंज के सेट पर स्टोरेज डिवाइस के लिए होस्ट के इरादे को इंगित करता है। इसके संचालन में से एक, DEALLOCATE ट्रिम करता है। इसमें WRITE ZEROES कमांड भी है जो DEALLOCATE संकेत प्रदान करता है और डिस्क को ट्रिम करने और शून्य वापस करने की अनुमति देता है।
नुकसान
- कुछ अस्वीकृत एन्क्रिप्शन योजनाओं में संपूर्ण डिस्क को यादृच्छिक कचरे की तरह दिखाना शामिल है। TRIM का उपयोग करने से प्रशंसनीय खंडन की यह परत पराजित हो जाती है क्योंकि बनाए गए सभी-शून्य (या सभी-एक) ब्लॉक आसानी से इंगित करते हैं कि कौन से ब्लॉक का उपयोग किया जाता है।[67] यह तर्क दिया गया है कि TRIM को अक्षम करना संदिग्ध भी हो सकता है।[68]
- TRIM कमांड के मूल संस्करण को T13 उपसमिति द्वारा एक गैर-कतारबद्ध कमांड के रूप में परिभाषित किया गया है, और इसके परिणामस्वरूप लापरवाही से उपयोग किए जाने पर बड़े पैमाने पर निष्पादन जुर्माना लगाया जा सकता है, उदाहरण के लिए, यदि प्रत्येक फाइलसिस्टम डिलीट कमांड के बाद भेजा जाता है। कमांड की गैर-कतारबद्ध प्रकृति के लिए ड्राइवर को पहले सभी बकाया कमांडों के समाप्त होने की प्रतीक्षा करने की आवश्यकता होती है, TRIM कमांड जारी करें, फिर सामान्य कमांड्स को फिर से शुरू करें। एसएसडी में फर्मवेयर के आधार पर टीआरआईएम को पूरा होने में काफी समय लग सकता है, और कचरा संग्रह (एसएसडी) चक्र भी ट्रिगर कर सकता है।[citation needed] इस पेनल्टी को उन समाधानों में कम किया जा सकता है जो सिस्टम उपयोग कम होने पर ऐसे बैच जॉब्स को शेड्यूल करके प्रत्येक फ़ाइल हटाने पर ट्रिमिंग करने के बजाय बैच टीआरआईएम और/या आवधिक टीआरआईएम करते हैं। कतारबद्ध TRIM कमांड की शुरुआत के साथ सीरियल ATA संशोधन 3.1 में इस TRIM नुकसान को दूर किया गया है।[69][70]
- केवल कुछ हाइपरविजर (जैसे हाइपर-वी, समानताएं डेस्कटॉप) ने अतिथि ओएस (2023 तक) के लिए टीआरआईएम लागू किया है।
- दोषपूर्ण ड्राइव फर्मवेयर जो कतारबद्ध TRIM के लिए समर्थन की गलत सूचना देता है या इसके कार्यान्वयन में महत्वपूर्ण बग हैं, गंभीर डेटा भ्रष्टाचार और/या गंभीर बग जैसे कई उपकरणों में लगातार फ्रीज से जुड़ा हुआ है, विशेष रूप से माइक्रोन और क्रूसियल का M500[71] और सैमसंग की 840 और 850 श्रृंखला।[72] लिनक्स ऑपरेटिंग सिस्टम पर डेटा भ्रष्टाचार की पुष्टि की गई है (1 जुलाई 2015 तक कतारबद्ध ट्रिम समर्थन वाला एकमात्र ओएस)।[73]
इन उपकरणों को लिनक्स कर्नेल में ब्लैकलिस्ट किया गया है libata-core.c गैर-कतारबद्ध TRIM आदेश भेजने के लिए बाध्य करने के लिए (ATA_HORKAGE_NO_NCQ_TRIM) कतारबद्ध TRIM कमांड के बजाय इन ड्राइव्स पर:[74]
- माइक्रोन/क्रूशियल M500 फ़ैक्टरी पुन: प्रमाणित एसएसडी सहित सभी फ़र्मवेयर संस्करणों का उपयोग कर रहा है
- फर्मवेयर संस्करण MU01 का उपयोग करके माइक्रोन M510
- फर्मवेयर संस्करण MU01 का उपयोग कर माइक्रोन/क्रूशियल M550
- फर्मवेयर संस्करण MU01 का उपयोग करते हुए महत्वपूर्ण MX100
- सभी फर्मवेयर संस्करणों का उपयोग कर सैमसंग 840 और 850 श्रृंखला एसएसडी
यह फ़ाइल सामान्य रूप से TRIM के विरुद्ध SuperSpeed S238 को भी ब्लैकलिस्ट करती है क्योंकि TRIM जारी होने पर गलत ब्लॉक डेटा खो देता है।[74][75]
libata-core.c के पास SSDs को सूचीबद्ध करने के लिए एक श्वेतसूची भी है जो DRAT और RZAT फ़्लैग्स को सही ढंग से लागू करने के लिए सबसिस्टम के अनुरक्षकों के लिए विश्वसनीय रूप से ज्ञात हैं (ATA_HORKAGE_ZERO_AFTER_TRIM
), उन्हें अनदेखा करने के बजाय, जैसा कि कई ड्राइव करते हैं। श्वेतसूचीबद्ध ड्राइव इस प्रकार हैं:[74]* महत्वपूर्ण एसएसडी
- Intel SSDs, Intel SSD 510 को छोड़कर
- माइक्रोन एसएसडी
- सैमसंग एसएसडी
- सीगेट एसएसडी[76]
यह भी देखें
संदर्भ
- ↑ "Intel High Performance Solid State Drive – Advantages of TRIM". Intel.com. Intel. 14 September 2010. Retrieved 21 February 2012.
- ↑ {{Cite web|url=https://www.anandtech.com/show/2738 |title=SSD एंथोलॉजी: OCZ से SSDs और नई ड्राइव्स को समझना|author=Shimpi, Anand Lal |website=AnandTech.com |page=4 |date=2009-03-18 |access-date=2010-06-19}
- ↑ "किंग्स्टन SSDNow वी प्लस 100 की समीक्षा". AnandTech.com. Anand Lal Shimpi. 11 November 2010. Retrieved 10 December 2010.
- ↑ "ट्रिम कमांड - हार्ड डिस्क ड्राइव के लिए सामान्य लाभ" (PDF). Documents.westerndigital.com. Retrieved 7 November 2021.
- ↑ 5.0 5.1 5.2 Savill, John (21 April 2009). "I heard solid-state disks (SSDs) suffer from a decline in write performance as they're used. Why?". WindowsITPro. Archived from the original on 19 August 2012. Retrieved 19 June 2010.
- ↑ 6.0 6.1 6.2 शिंपी, आनंद लाल। (18 मार्च 2009)। पी। 7.
- ↑ 7.0 7.1 {{Cite web |url=http://www.windowsitpro.com/article/file-systems/q-what-is-the-trim-function-for-solid-state-disks-ssds-and-why-is-it-important-.aspx |archive-url=https://archive.today/20130209233800/http://www.windowsitpro.com/article/file-systems/q-what-is-the-trim-function-for-solid-state-disks-ssds-and-why-is-it-important-.aspx |url-status=dead |archive-date=2013-02-09 |title=सॉलिड-स्टेट डिस्क (SSDs) के लिए TRIM फ़ंक्शन क्या है और यह क्यों महत्वपूर्ण है?|author=Savill, John |publisher=WindowsITPro |date=2009-04-22 |access-date=2010-06-19 }
- ↑ Malventano, Allyn (13 February 2009). "इंटेल मेनस्ट्रीम एसएसडी का दीर्घकालिक प्रदर्शन विश्लेषण". PC Perspective. Retrieved 10 February 2012.
- ↑ 9.0 9.1 शिंपी, आनंद लाल। (18 मार्च 2009)। पी। 5.
- ↑ शिंपी, आनंद लाल। (18 मार्च 2009)। पी। 8.
- ↑ Cite error: Invalid
<ref>
tag; no text was provided for refs namedSSD_Anthology_10
- ↑ "Too TRIM? When SSD Data Recovery is Impossible". TechGage. TechGage. 5 March 2010. Retrieved 21 August 2018.
- ↑ "Preliminary TRIM support". leaf.dragonflybsd.org.
- ↑ "FreeBSD 8.1-RELEASE Release Notes: Disks and Storage". Retrieved 1 September 2010.
- ↑ "Add kernel side support for BIO_DELETE/TRIM on UFS". Retrieved 1 February 2011.
- ↑ "Added ZFS TRIM support which is enabled by default". Retrieved 5 June 2013.
- ↑ "FreeBSD 9.2-RELEASE Announcement". Retrieved 4 October 2013.
- ↑ "Base revision 242323 – Add basic BIO_DELETE support to GEOM RAID class for all RAID levels". Retrieved 30 October 2012.
- ↑ "TRIM support in NetBSD". 19 October 2012.
- ↑ "Linux_2_6_28 - Linux Kernel Newbies". kernelnewbies.org.
- ↑ "Storage changes in Linux 2.6.33". Kernel Newbies. Retrieved 1 September 2010.
- ↑ "Forked by Nicolay - HOWTO: Configure Ext4 to Enable TRIM Support for SSDs on Ubuntu and Other Distributions". sites.google.com.
- ↑ "Linux_2_6_32 - Linux Kernel Newbies". kernelnewbies.org.
- ↑ "JFS Filesystem can now handle trim". Retrieved 28 March 2012.
- ↑ "Linux_3.0 - Linux Kernel Newbies". kernelnewbies.org.
- ↑ Freemyer, Greg (2010). "OpenSUSE forum – SSD detection when creating first time fstab".
- ↑ "How to enable TRIM?". Ask Ubuntu. Retrieved 11 November 2015.
- ↑ "SDB:SSD discard (trim) support - openSUSE Wiki". en.opensuse.org.
- ↑ "Changes/EnableFSTrimTimer - Fedora Project Wiki". fedoraproject.org. Retrieved 10 December 2020.
- ↑ "Mac OS X 10.6.8 Brings TRIM Support for Apple SSDs, Graphics Improvements". 24 February 2012.
- ↑ "Macbook Pros ship with active SSD TRIM support". 4 March 2011.
- ↑ "Yosemite kills third-party SSD support". ZDNet.
- ↑ "Chameleon SSD Optimizer". chameleon.alessandroboschini.com.
- ↑ "You searched for Trim enabler". Cindori.org. Retrieved 7 November 2021.
- ↑ Lee Hutchinson (30 June 2015). "Latest OS X update allows you to enable TRIM for third-party SSDs". Ars Technica. Condé Nast. Retrieved 1 July 2015.
- ↑ Fortin, Michael (9 May 2009). Sinofsky, Steven (ed.). "Support and Q&A for Solid-State Drives". Engineering Windows 7 blog. Microsoft. Archived from the original on 25 April 2010. Alt URL
- ↑ "Windows 7 Enhancements for Solid-State Drives" (PDF). Microsoft downloads. Microsoft Corporation. 12 November 2008. Retrieved 8 July 2009.
- ↑ Geoff Gasior (2012) OCZ's RevoDrive 3 X2 240GB solid-state drive
- ↑ Coles, Olin (15 April 2010). "SSD Benchmark Tests: SATA IDE vs AHCI Mode – AHCI vs IDE Final Thoughts". BenchmarkReviews. Retrieved 20 August 2013.
- ↑ "Update to add native driver support in NVM Express in Windows 7 and Windows Server 2008 R2". Support. Microsoft. 8 September 2015.
- ↑ "What is the TRIM Command on Solid State Drives?". datarecovery.com. 30 January 2017.
Microsoft added the feature in a Windows 7 update known as KB2990941
- ↑ "Fsutil behavior". Microsoft Documentation (in English). Retrieved 17 November 2019.
- ↑ "SATA TRIM support in OpenSolaris". 29 July 2010.
- ↑ 44.0 44.1 "Android 4.3 Update Brings TRIM to All Nexus Devices". 29 July 2013. Retrieved 30 July 2013.
- ↑ "Android 4.3 announced, rolling out to Nexus devices today".The Verge. 24 July 2013. Retrieved 24 July 2013.
- ↑ "Possible to get SSD TRIM (discard) working on ext4 + LVM + software RAID in Linux? – Server Fault". Retrieved 29 November 2011.
- ↑ "Cyberax/mdtrim – GitHub". GitHub. Retrieved 29 November 2011.
- ↑ 48.0 48.1 "Red Hat Enterprise Linux 6 Storage Administration Guide, Chapter 21. Solid-State Disk Deployment Guidelines". Retrieved 9 March 2016.
- ↑ "Red Hat Enterprise Linux 7 Storage Administration Guide". 11 November 2015. Retrieved 29 February 2016.
- ↑ "Is there TRIM support for RAID configurations?". Intel. 26 March 2010. Retrieved 6 November 2010.
- ↑ "Intel Confirms RAID0 TRIM Support on 7-Series Chipsets". 19 August 2012. Retrieved 14 January 2013.
- ↑ "RAID0 trim and SRT seems possible on 6-series and 5-Series". 18 November 2012. Retrieved 14 January 2013.
- ↑ "TRIM & RAID-0 SSD Arrays Work With Intel 6-Series Motherboards Too". 28 November 2012. Retrieved 14 January 2013.
- ↑ "Intel Brings TRIM to RAID-0 SSD Arrays on 7-Series Motherboards, We Test It". 16 August 2012. Retrieved 14 January 2013.
- ↑ Anand Lal Shimpi. "Intel Brings TRIM to RAID-0 SSD Arrays on 7-Series Motherboards, We Test It".
- ↑ Doug Crowthers (17 August 2012). "TRIM Command Confirmed With RAID 0 on Intel 7 Series". Tom's Hardware.
- ↑ "इंटेल एसएसडी अनुकूलक श्वेत पत्र" (PDF). Intel Corporation. Archived from the original (PDF) on 5 October 2012. Retrieved 23 January 2010.
- ↑ "hdparm-9.17 released, with experimental trim/wiper scripts for SSDs". Retrieved 14 August 2010.
- ↑ "hdparm प्रोजेक्ट पेज". sourceforge.net. Retrieved 14 August 2010.
- ↑ "Data Set Management Commands Proposal for ATA8-ACS2 (revision 6)". INCITS T13. INCITS. 12 December 2007. Retrieved 8 July 2009. (draft specification T13/e07154r6)
- ↑ "T13 documents referring to TRIM". INCITS T13. INCITS. Retrieved 8 July 2009.
- ↑ "T13 ATA8 Draft Spec 1697-D" (PDF). INCITS. 23 June 2010. Retrieved 14 August 2010.
- ↑ "SATA 6Gb/s". Serial ATA International Organization. Retrieved 26 September 2012.
- ↑ "Device.Storage आवश्यकताएँ (Windows)". Retrieved 29 February 2016.
- ↑ "T13/2161-D: Information technology – ATA/ATAPI Command Set – 3 (ACS-3)" (PDF). T13.org. Retrieved 29 February 2016.
- ↑ Motin, Alexander (24 December 2011). "RFC: SCSI UNMAP (TRIM) support". Lists.freebsd.org. Retrieved 7 November 2021.
- ↑ "Milan Broz's blog: TRIM & dm-crypt ... problems?". Milan Broz. 14 August 2011. Retrieved 1 October 2014.
- ↑ "पूरी तरह से इनकार करने योग्य स्टेग्नोग्राफ़िक डिस्क एन्क्रिप्शन" (PDF). I.blackhat.com. Retrieved 7 November 2021.
- ↑ "The Path from 3Gb/s to SATA 6Gb/s: How to Migrate Current Designs to the SATA Revision 3.0 Specification". Sata-io.org. 27 May 2009. Retrieved 7 November 2021.
- ↑ "SATA 3.1 spec brings swap standard, improved TRIM". The Tech Report. 18 July 2011.
- ↑ "71371 [PATCH]Crucial M500, broken "queued TRIM" support". bugzilla.kernel.org.
- ↑ "Bug #1449005 trim does not work with Samsung 840 EVO after firm... : Bugs : fstrim package : Ubuntu". Launchpad.
- ↑ torvalds. "linux/libata-core.c at e64f638483a21105c7ce330d543fa1f1c35b5bc7 · torvalds/linux · GitHub". GitHub.
- ↑ 74.0 74.1 74.2 torvalds. "linux/libata-core.c at master · torvalds/linux · GitHub". GitHub.
- ↑ torvalds. "libata: force disable trim for SuperSSpeed S238 · torvalds/linux@cda57b1". GitHub.
- ↑ "[1/3] libata: Whitelist SSDs that are known to properly return zeroes after TRIM - Patchwork". patchwork.ozlabs.org.
बाहरी संबंध
- From write() down to flash chips – An explanation on how the TRIM command lets SSDs erase data not used by the filesystem
- TRIM Command White Paper – A white paper explaining the command's purpose and actions
- Fusion-io Patent "Apparatus, system, and method for redundant write caching"