एक एसएसडी पर दो ड्राइव के बीच एक फ़ाइल को स्थानांतरित करना - क्या इसे कॉपी किया जाएगा?


18

फ़ाइल को एक ड्राइव में ले जाते समय, फ़ाइल कॉपी-एंड-डिलीट नहीं होती है। फ़ाइलों को संदर्भित करने वाली तालिका को अभी अद्यतन किया गया है। और जहाँ तक मुझे पता है, कि एक HDD पर 2 ड्राइव पर ऐसा नहीं है। लेकिन एसएसडी अलग हैं, प्रत्येक ड्राइव के लिए समर्पित कोई भौतिक स्थान नहीं है। ( स्रोत )

तो मेरा सवाल यह है कि क्या होता है जब एक फ़ाइल को उसी SSD पर एक ड्राइव से दूसरे में ले जाया जाता है, क्या बाइट्स कॉपी की जाती हैं और मूल हटा दी जाती हैं, या कुछ टेबल अपडेट की जाती है, जिससे SSD कम हो जाता है?

यहां पहले से ही एक डुप्लिकेट प्रश्न है । लेकिन दोनों जवाब दावा करते हैं:

प्रत्येक विभाजन के पास ड्राइव का स्वयं का भौतिक क्षेत्र होगा

तथा

हार्ड ड्राइव का विभाजन वास्तव में प्रत्येक विभाजन के लिए भौतिक क्षेत्रों को नामित करता है। [(एक टिप्पणी में:] SSD अभी भी एक हार्ड ड्राइव है, यह सिर्फ एक डिस्क नहीं है।

जहां तक ​​मुझे पता है कि यह गलत है। देखें यहाँ

तो क्या कोई जो SSDs के बारे में अधिक जानता है कृपया मुझे बताएं कि क्या वे अपनी गलती के बावजूद अपने आकलन में सही हैं?


14
स्वीकृत उत्तर सही है: प्रत्येक विभाजन का अपना, स्वतंत्र फाइल सिस्टम है। प्रत्येक फाइलसिस्टम अपने लिए यह तय करता है कि यह किस प्रकार उसे सौंपे गए ब्लॉक का उपयोग करता है। ऐसा करने के लिए आप SSD, फाइलसिस्टम (एस) के फर्मवेयर का प्रस्ताव रखते हैं और लिनक्स जैसे यूजरलैंड टूल्स mvको सहयोग करना होगा, जिससे एब्सट्रैक्शन लेयर्स को बहुत मिलाया जा सके।
कामिल मैकियोरोस्की

2
@ कामिल: यदि ओएस ने इसे लागू किया है, mvतो वास्तव में इसे वर्तमान में कम से कम करने की आवश्यकता होगी , मुझे संदेह है। (यही है, ओएस को बस यह सुनिश्चित करने की आवश्यकता होगी कि एक क्रॉस-फाइलसिस्टम का नाम बदलें () वर्तमान में जैसा भी होता है असफल होने के बजाय सफल होता है।)
user1686

16
"[एक एसएसडी / एचडीडी] पर 2 ड्राइव" - मुझे लगता है कि आप एक एसएसडी / एचडीडी पर 2 फाइल सिस्टम या 2 विभाजन कहने का मतलब है। याद रखें कि दोनों जोड़ो में अंतिम "D" "ड्राइव" है, इसलिए आप 1 ड्राइव में 2 ड्राइव कह रहे हैं, जिसका कोई मतलब नहीं है।
योएल

1
उदाहरण के लिए डिस्क प्रबंधन संवाद लें। यह Change Drive Letter and Pathsएक विभाजन / मात्रा का जिक्र करते समय कहता है ।
ispiro

4
@ispiro विंडोज पर है? उपयोगकर्ताओं को भ्रमित करने के लिए एक भयानक तरीका लगता है। मैं केवल अनुमान लगा सकता हूं कि वे ड्राइव विभाजन के पहले "ड्राइव लेटर" शब्द के साथ आए थे, जहां लागू किया गया था, और फिर उन्होंने स्टैंडअलोन "ड्राइव" के रूप में ड्राइव विभाजन का प्रतिनिधित्व किया। तो अब आपके पास एक हार्डवेयर ड्राइव के विभाजन का प्रतिनिधित्व करने वाले कई विंडोज "ड्राइव" हो सकते हैं ...
21

जवाबों:


38

जहां तक ​​मुझे पता है कि यह गलत है

उद्धृत विवरण आधा-सही, आधा-गलत है। लेकिन यह HDDs के लिए भी आधा गलत है।

एक विभाजन का विभाजन प्रत्येक विभाजन के लिए तार्किक क्षेत्रों को नामित करता है । OS भौतिक स्थानों के बारे में बिल्कुल भी परवाह नहीं करता है - यह ड्राइव को " लॉजिकल ब्लॉक # 31415926" पढ़ने के लिए कहता है और ड्राइव स्वयं निर्णय लेता है कि डेटा कहाँ स्थित है। यह चुंबकीय और फ्लैश मेमोरी के लिए उसी तरह काम करता है।

यह वास्तव में पिछले 20-25 वर्षों से HDD के साथ समान है : हालांकि शुरुआती ऑपरेटिंग सिस्टम ने भौतिक सिलेंडर / हेड / सेक्टर स्थानों का उपयोग किया था, जो अब लंबा हो गया है। आप ठीक से नहीं जानते हैं कि LBA # 1234 को किस स्थान पर रखा गया है। HDDs भी खराब भौतिक क्षेत्रों को स्वचालित रूप से हटा देते हैं, इसलिए समान LBA को पूरी तरह से अलग भौतिक क्षेत्र से पढ़ा जा सकता है - ठीक उसी तरह जैसे कि SSDs के साथ।

तो HDDs और SSDs दोनों के साथ, OS के पास डेटा पढ़ने और लिखने के लिए LBA की श्रेणी (जैसे 0–999999) है। विभाजन का उद्देश्य इसमें उप-श्रेणियाँ आवंटित करना है - जैसे विभाजन A को 10–499999, विभाजन B को 500000-999999 मिलते हैं। प्रत्येक विभाजन में एक स्वतंत्र फाइल सिस्टम है, और प्रत्येक विभाजन के अंदर फाइल सिस्टम इसके बाहर डेटा का संदर्भ नहीं दे सकता है - वे विभाजन की सीमाओं को पार नहीं कर सकते हैं। (उदाहरण के लिए, विभाजन A में ऐसी फ़ाइल नहीं हो सकती जिसका डेटा सेक्टर # 600000 में रखा गया हो।)

नतीजतन, एक से दूसरे में जाने वाली सभी फाइलों को पूर्ण रूप से कॉपी किया जाना है।

(यह कहा गया, सिद्धांत रूप में ओएस डिस्क को एक क्षेत्र से दूसरे क्षेत्र में डेटा की नकल करने के लिए कहने में सक्षम हो सकता है (उदाहरण के लिए "कॉपी LBA # 1234 से # 567890"), इसे मुख्य मेमोरी में कॉपी करने के बिना और फिर वापस, और निश्चित रूप से यह पूरी तरह से विभाजन की सीमाओं को बायपास करेगा। यह SSD की "फ्लैश ट्रांसलेशन लेयर" का उपयोग कर सकता है, उदाहरण के लिए। लेकिन व्यवहार में, जहां तक ​​मुझे पता है, यह नहीं किया गया है।)


मुझे लगता है कि तुम सही हो। हालांकि, ध्यान दें कि एक और विकल्प है। ड्राइव यह तय कर सकती है कि ड्राइव # 1 पर सेक्टर # 001 अब ड्राइव # 2 में सेक्टर # 123 के साथ स्विच करेगा (यानी ड्राइव # 1 पर सेक्टर # 001 अब उस भौतिक डेटा को संदर्भित करेगा जिसे सेक्टर # 123 के रूप में संदर्भित किया जाता था। # 2 ड्राइव) जिससे बाइट्स को कॉपी किए बिना फ़ाइल चलती है । तो डेटा की एक टीबी चलती सकते हैं सिद्धांत रूप में लगभग तात्कालिक हो।
ispiro

15
ड्राइव फ़ाइलों या फाइल सिस्टम के बारे में नहीं जानती है, और इसलिए वह स्वयं इस तरह के निर्णय नहीं ले सकती है। ऐसा होने के लिए इसे OS से अनुरोध प्राप्त करना होगा। जैसा कि मैंने पहले ही अंतिम पैराग्राफ में उल्लेख किया है, यह निश्चित रूप से तकनीकी रूप से संभव है, लेकिन ऑपरेटिंग सिस्टम आमतौर पर क्रॉस-फाइलसिस्टम प्रतियों के लिए इससे परेशान नहीं होते हैं, और मुझे संदेह है कि वे समान-फाइलसिस्टम प्रतियों के लिए करते हैं (आमतौर पर यह एफएस स्तर पर किया जाता है)।
user1686

6
कुछ SSDs ब्लॉक स्तर पर दोहराव को लागू करते हैं। Eg Sandforce ( en.wikipedia.org/wiki/SandForce#Technology ) इसे लागू करने वाले पहले लोगों में से एक थे और उनके नियंत्रकों ने कई SSD निर्माता के उत्पादों में अपना रास्ता बनाया। सैंडफोर्स नियंत्रकों का एक "राइट एम्प्लीफिकेशन" कारक एक से कम था - जिसका अर्थ है कि उन्होंने ओएस को ड्राइव पर भेजे जाने की तुलना में फ्लैश स्टोरेज के लिए कम डेटा लिखा था। एक तुलना के रूप में, SSDs में आम तौर पर एक से अधिक का लेखन amp कारक होता है।
होजूसाराम

2
@ झोजुराम: सच है, लेकिन यह अभी भी पोस्ट-फैक्टम डिडुप्लीकेशन है - फ्लैश राइट को कम करता है, लेकिन डेटा अभी भी पढ़ा जाता है, डिस्क से ओएस मेमोरी में कॉपी किया जाता है और फिर डिस्क कंट्रोलर में वापस आ जाता है। Ispiro का मतलब है कि मुझे लगता है कि SSD "reflink" या "copy on write" (उदाहरण cp --reflink) के बराबर है जो OS स्पष्ट रूप से डिस्क को स्वयं पर प्रदर्शन करने के लिए कह सकता है।
user1686

1
यह जानना दिलचस्प होगा कि एपीएफएस इससे कैसे निपटता है, क्योंकि विभाजन की सीमाएं अब तय नहीं हैं, वे उपयोगकर्ता के हस्तक्षेप के बिना पारस्परिक हैं।
टेटसुजिन

9

जब एक ठोस राज्य डिस्क पर डेटा लिखा जाता है तो क्या होता है यह कई लेखों ( यहाँ अच्छा सारांश ) के योग्य है, क्योंकि यह बहुत जटिल है और अंतर्निहित तकनीक पर निर्भर करता है। लघुकथा यह है कि SSDs सामान्य रूप से मेमोरी में शून्य बिट्स नहीं लिख सकते हैं। इसके बजाय, उन्हें मेमोरी के एक पूरे सेक्शन को जीरो आउट (मिटा) करना होगा, और उसके बाद वे डेटा को स्टोर कर सकते हैं। आम तौर पर इन दिनों वे 512 बाइट्स के ब्लॉक लिखते हैं , लेकिन 8 ब्लॉक का एक पेज मिटाते हैं, जो 4096 है। यह, और यह तथ्य कि प्रत्येक लिखने / मिटाने के चक्र में मेमोरी के कुछ भौतिक पहनने का कारण बनता है और स्मृति अंततः बाहर पहनती है, एसएसडी को अलग बनाती है चुंबकीय HDD कताई की तुलना में।

उस तरफ स्थापित करते हुए, SATA ड्राइव (और AFAIK SAS ड्राइव) एक क्षेत्र से दूसरे में डेटा की प्रतिलिपि बनाने के लिए एक देशी कमांड को लागू नहीं करते हैं। (या एसएटीए या एसएएस कल्पना में कम से कम कुछ भी उन्हें करने की आवश्यकता नहीं है, इसलिए ओएस ऐसे कमांड पर उपलब्ध नहीं हो सकता है।) इसलिए एक विभाजन की फाइल कॉपी में एक ड्राइव सेक्टर से डेटा को होस्ट मेमोरी में पढ़ना और फिर लिखना शामिल होगा। यह एक अलग सेक्टर में ड्राइव पर वापस जाता है।

ऐसा इसलिए है क्योंकि जहां तक ​​ओएस का संबंध है, एक ड्राइव गिने हुए तार्किक क्षेत्रों का एक सेट है, और यह सब कर सकते हैं क्षेत्रों से पढ़ा जाता है और सेक्टरों को लिखता है। OS सेक्टरों को हटाने के लिए ड्राइव नहीं बता सकता है।

इसके अलावा, फ़ाइल सिस्टम (HFS +, NTFS, ext3, आदि) डेटा संरचनाओं का एक सेट है जो तार्किक ब्लॉकों के एक सेट पर आदेश लागू करता है। उन डेटा संरचनाएं "फाइलें", "फ़ाइल नाम", "निर्देशिका", "अनुमतियाँ" आदि को लागू करती हैं, इसलिए, हां, जब आप किसी फ़ाइल को एक निर्देशिका से दूसरे में स्थानांतरित करते हैं, तो इसकी प्रतिलिपि नहीं बनाई जाती है; फ़ाइल सिस्टम डेटा केवल यह दर्शाता है कि फ़ाइल किस निर्देशिका में अद्यतन की गई है।

एक विभाजन की अवधारणा यह है कि यह एकल फ़ाइल सिस्टम द्वारा दावा किए गए ड्राइव पर तार्किक क्षेत्रों का एक समूह है। उस के लिए कोरलरी यह है कि एक फ़ाइल सिस्टम अपने विभाजन के बाहर के क्षेत्रों तक नहीं पहुँच सकता है। बड़े हिस्से में यह एक सुरक्षा सुविधा है, लेकिन यह इस तथ्य से भी बहती है कि फ़ाइल सिस्टम के डेटा संरचनाएं फ़ाइल सिस्टम के स्वामित्व के तहत ड्राइव के हर क्षेत्र के लिए लेखांकन के आसपास बनाई गई हैं, और यह सेक्टरों को जोड़ने या हटाने के लिए गैर-तुच्छ है उन संरचनाओं के लिए। यही कारण है कि आपको विभाजन के आकार को समायोजित करने के लिए विशेष रूटीन चलाना पड़ता है और यह भी कि फाइल सिस्टम सेक्टरों के एक आकस्मिक सेट पर चलने के लिए क्यों जोर देते हैं।

इसलिए यह एक फाइल कॉपी को लागू करने के लिए अव्यावहारिक और खतरनाक है क्योंकि सिर्फ एक फाइल सिस्टम से दूसरे सेक्टर में ट्रांसफर होता है। स्पिनिंग मैग्नेटिक ड्राइव पर, यह एक प्रदर्शन बुरा सपना भी होगा, क्योंकि हालांकि ड्राइव खराब क्षेत्रों के लिए अपवाद बना देगा, सामान्य तौर पर यह सेक्टरों को शारीरिक रूप से इस तरह से व्यवस्थित करने की व्यवस्था करता है कि लगातार पढ़ी गई संख्या को पढ़ने और लिखने की गति को अनुकूलित कर सके। क्षेत्रों।

इसके अतिरिक्त, 2 फ़ाइल सिस्टम डिस्क पर उसी तरह फ़ाइल डेटा को संग्रहीत नहीं कर सकते हैं, जिसका अर्थ है कि स्वैपिंग सेक्टर व्यावहारिक होने पर भी काम नहीं करेगा। यहां तक ​​कि अगर वे ठीक उसी फ़ाइल सिस्टम प्रकार हैं, तो कहेंगे कि NTFS, एक एन्क्रिप्शन या संपीड़न का उपयोग कर सकता है और दूसरा नहीं, या दोनों डेटा एन्क्रिप्ट कर सकते हैं, लेकिन अलग-अलग कुंजी के साथ। यह कोई आवश्यकता नहीं है कि फ़ाइल में डेटा बिल्कुल डिस्क पर संग्रहीत है, जो सभी को संग्रहीत करना है वह डेटा का प्रतिवर्ती परिवर्तन है, ताकि फ़ाइल सिस्टम फ़ाइल के डेटा को कुछ करके प्राप्त कर सके डिस्क पर डेटा। इसलिए जब तक कि दोनों फाइल सिस्टम एक ही परिवर्तन का उपयोग नहीं कर रहे हैं, बस स्वैपिंग सेक्टर फ़ाइल डेटा को स्थानांतरित करने के लक्ष्य को पूरा नहीं करेगा।

इन सभी कारणों से, यह SSD के लिए विभाजन के पार चालों को अनुकूलित करने वाली विशेषता को लागू करने के लिए OS लेखकों और फ़ाइल सिस्टम लेखकों के लिए बहुत कम लाभ के लिए बहुत अधिक काम है। तो कोई भी क्रॉस-विभाजन कदम एक रीड एंड राइट होगा।

एसएसडी के अंदर, यह थोड़ी अलग कहानी है। हालाँकि OS ने ड्राइव को यह नहीं बताया कि वह डेटा को एक जगह से दूसरी जगह कॉपी कर रहा है, SSD को लिखता है इतना महंगा (और जटिल) है कि SSD कंट्रोलर राइट्स को कम करने के लिए बहुत काम करते हैं। कुछ SSD तब तक चलते हैं जब यह पता लगाने की कोशिश की जाती है कि स्टोरेज को लिखा जाने वाला सेक्टर पहले से स्टोर किए गए किसी सेक्टर से मेल खाता है और उस भौतिक टुकड़े को चिन्हित करता है जो अब कॉपी करने के बजाय 2 अलग-अलग लॉजिकल सेक्टर में मैपिंग करता है, जो आंतरिक ड्राइव स्तर पर कर रहा है। OS नहीं कर सका।

लेकिन उस पर भरोसा मत करो।


1
क्या आपका अंतिम पैराग्राफ इसका अर्थ नहीं है कि फाइलसिस्टम समान होना चाहिए? मुझे लगता है कि SSD नहीं जानता कि कौन सी फाइलसिस्टम शीर्ष पर चल रही है। यदि उदाहरण के लिए एक विभाजन संपीड़न का उपयोग करता है और दूसरा नहीं करता है, तो SSD द्वारा एक प्रतिलिपि संभवतः फ़ाइल को भ्रष्ट कर देगी।
ब्लाबलाबला

@blablabla अंतिम फ़ाइल मान लिया गया कि दोनों फ़ाइल सिस्टम डिस्क पर वास्तविक फ़ाइल सामग्री को बिना परिवर्तन के संग्रहीत करते हैं। मैंने वह स्पष्ट कर दिया है।
ओल्ड प्रो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.