Кіріспе

Компьютерлік деректердегі қателер бастапқы деректерге күтілмеген өзгерістер енгізеді. Деректердің бұзылуы – деректерді жазу, оқу, сақтау, беру немесе өңдеу кезінде туындайтын компьютерлік деректердегі қателер, олар бастапқы деректерге қаламаған өзгерістер енгізеді. Компьютерлік, беру және сақтау жүйелері деректердің тұтастығын, яғни қателердің болмауын қамтамасыз ету үшін бірқатар шараларды қолданады. Әдетте, деректер бұзылғанда, осы деректерді қамтитын файл жүйе немесе оған қатысты қолданбамен қол жеткізілген кезде күтпеген нәтижелер туындайды. Нәтижелер деректердің аз ғана жоғалуынан бастап жүйелік құлауға дейін жетеді. Мысалы, егер құжат файлы бұзылса, оны құжат редакторымен ашуға тырысқанда пайдаланушы қате туралы хабарлама алады, нәтижесінде файл ашылмауы немесе бір бөлігі бұзылған күйде ашылуы мүмкін (кейбір жағдайларда толығымен бұзылып, құжатты түсінбеуге әкелуі мүмкін). Суретте көрсетілген файл – көп бөлігі жоғалған бұзылған сурет файлы. Кейбір зиянды бағдарламалар файлдарды олардың құрамына кіретін бөлік ретінде әдейілеп бұзуы мүмкін, әдетте оларды жұмыс істемейтін немесе мағынасыз кодпен жазады. Ал зиянды емес вирустар файлдарға қол жеткізген кезде оларды кездейсоқ түрде бұзуы да мүмкін. Егер вирус немесе троян осы әдіс арқылы компьютердің операциялық жүйесінің бағдарламалық қамтамасы немесе физикалық жабдығының жұмысы үшін маңызды файлдарды өзгертуге қол жеткізсе, бүкіл жүйе қолдануға жарамсыз болуы мүмкін. Кейбір бағдарламалар қате пайда болғаннан кейін файлды автоматты түрде жөндеуді ұсынады, ал кейбір бағдарламалар оны жөндеуге шамасы келмейді. Бұл бұзылу деңгейіне және қолданбаның қатемен жұмыс істеуге арналған мүмкіндіктеріне байланысты. Бұзылудың түрлі себептері бар.

Шолу

Компьютерлік жүйелерде деректердің бұзылуының екі түрі бар: анықталмаған және анықталған. Анықталмаған деректердің бұзылуы, сондай-ақ үнсіз деректердің бұзылуы деп аталады, деректердің дұрыс еместігін көрсетпейтіндіктен ең қауіпті қателерге әкеледі. Анықталған деректердің бұзылуы деректердің жоғалуымен бірге тұрақты болуы мүмкін, немесе жүйенің бір бөлігі қателікті анықтап, түзетуге қабілетті болғанда уақытша болуы мүмкін; соңғы жағдайда деректердің бұзылуы болмайды. Деректердің бұзылуы жүйенің кез келген деңгейінде, хосттан сақтау ортасына дейін пайда болуы мүмкін. Қазіргі заманғы жүйелер көптеген деңгейлерде бұзылуды анықтауға және оны қалпына келтіруге немесе түзетуге тырысады; бұл көбінесе сәтті болады, бірақ өте сирек жағдайда жүйе жадысына келіп түсетін ақпарат бұзылып, болжамсыз нәтижелерге әкелуі мүмкін. Деректерді беру кезінде бұзылудың себептері әртүрлі. Деректерді берудің үзілуі ақпараттың жоғалуына себеп болады. Сыртқы ортаның жағдайлары, әсіресе сымсыз беру әдістерін қолданғанда, деректерді беруге кедергі келтіруі мүмкін. Тығыз бұлттар спутниктік сигналдарды тоқтатуы мүмкін. Сымсыз желілер микротолқынды пештер сияқты құрылғылардан кедергіге ұшырайды. Аппараттық және бағдарламалық жасақтаманың істен шығуы деректерді жоғалтудың екі негізгі себебі болып табылады. Фондық сәулелену, дискідегі қателер және сақтау құрылғысының тозуы немесе ескіруі бірінші санатқа жатады, ал бағдарламалық жасақтаманың істен шығуы көбінесе кодтағы қателерге байланысты болады. Космикалық сәулелер DRAM-дағы көптеген жұмсақ қателерге себеп болады.

Тыныш

Кейбір қателер дискілік микропрограммасымен немесе хост операциялық жүйесімен анықталмай, байқалмай қалады; мұндай қателер үнсіз деректердің бұзылуы деп аталады. Дискідегі сақтаудың ішкі жүйесінен тыс көптеген қателік көздері бар. Мысалы, кабельдер сәл босаңсыған болуы мүмкін, қуат көзінің жұмысы тұрақсыз болуы мүмкін, қатты дыбыс сияқты сыртқы дірілдер, желіде байқалмайтын бұзылулар, ғарыш сәулесі және жадтағы жұмсақ қателердің көптеген басқа да себептері болуы мүмкін. Талданған 39 000 сақтау жүйесінде микропрограммадағы қателер сақтаудың сәтсіздігінің 5–10% құрады. CERN жүргізген зерттеуде байқалған қателік деңгейі 10¹⁶ биттен бірге тең немесе одан да жоғары. Amazon.com интернет-дүкені өз жүйелерінде деректердің жоғары деңгейде бұзылуын мойындады. 2021 жылы Google және Facebook компанияларының жарияланымдарында процессордың ақаулы ядролары қосымша себеп ретінде анықталды; мыңдаған ядролардың бірнешеуі ақаулы болып шықты. Бір мәселе – қатты дискілердің сыйымдылығы айтарлықтай артқан, бірақ олардың қателік деңгейі өзгермеген. Деректердің бұзылу деңгейі уақыт бойынша шамамен тұрақты болып келді, яғни қазіргі дискілер ескі дискілерге қарағанда қауіпсіз емес. Ескі дискілерде деректердің бұзылу ықтималдығы өте төмен болды, себебі олар аздаған деректерді сақтады. Қазіргі дискілерде бұл ықтималдық әлдеқайда жоғары, себебі олар көп көлемде деректерді сақтайды, бірақ қауіпсіздігі арта қойған жоқ. Сондықтан, сақтау құрылғылары салыстырмалы түрде кішкентай және баяу болғанда үнсіз деректердің бұзылуы үлкен мәселе болған жоқ. Қазіргі заманда үлкен дискілердің пайда болуымен және өте жылдам RAID конфигурацияларымен пайдаланушылар 10¹⁶ бит деректерді салыстырмалы түрде қысқа уақыт ішінде жіберуге қабілетті, осылайша деректердің бұзылу шегіне жетеді. Мысалы, ZFS құрушысы Джефф Бонвик Greenplum компаниясының жылдам деректер қоры, ірі көлемдегі деректерді сақтау және талдау саласындағы мамандандырылған деректер базасы бағдарламалық қамтамасыз ету компаниясы, әр 15 минут сайын үнсіз сыбайлас жемқорлыққа тап болатынын мәлімдеді. Тағы бір мысал ретінде, NetApp компаниясы 41 ай ішінде 1,5 миллионнан астам қатты дискілерде жүргізген нақты зерттеуде 400 000-нан астам үнсіз деректердің бұзылуын анықтады, оның ішінде 30 000-нан астамы аппараттық RAID контроллерімен анықталмады (тек тексеру кезінде анықталды). CERN жүргізген тағы бір зерттеуде алты ай бойы 97 петабайт деректерді зерттеу нәтижесінде желіден дискіге дейінгі жолда бір жерде шамамен 128 мегабайт деректердің тұрақты түрде бұзылғаны анықталды. Үнсіз деректердің бұзылуы тізбектей сәтсіздіктерге әкелуі мүмкін, онда жүйе анықталмаған бастапқы қатемен біршама уақыт жұмыс істей алады, содан кейін анықталмайынша проблемалар көбейе береді. Мысалы, файл жүйесінің метадеректеріне әсер ететін қате бірнеше файлдардың ішінара зақымдалуына немесе файл жүйесі бұзылған күйде пайдаланылғандықтан, мүлдем қолжетімсіз болуына әкелуі мүмкін.

Қарсы шаралар

Деректердің бұзылуы Пуассон процесі сияқты қалыптасқанда, әрбір дерек бітінің өзгеру ықтималдығы тәуелсіз және төмен болғанда, деректердің бұзылуын әдетте тексеру сомаларын қолдану арқылы анықтауға болады және қателерді түзету кодтарын (ECC) пайдалану арқылы түзетуге болады. Егер түзетілмейтін деректердің бұзылуы анықталса, автоматты қайта жіберу немесе резервтік көшірмеден қалпына келтіру сияқты процедуралар қолданылуы мүмкін. RAID дискілік массивінің белгілі бір деңгейлері бірнеше дискілер жиынтығында деректерді сақтау және бағалау мүмкіндігіне ие және RAID деңгейіне байланысты бір немесе бірнеше дискінің істен шығуынан бұзылған деректерді қалпына келтіре алады. Кейбір процессор архитектуралары процессор кэштерінде, процессор буферлерінде және нұсқау құбырларында деректердің бұзылуын анықтау және азайту үшін әртүрлі ашық тексерулерді қолданады; мысалы, Intel Itanium процессорларында қол жетімді Intel Instruction Replay технологиясы. Көптеген қателерді қатты дискілер әрбір сектор үшін дискіде сақталған ECC кодтарын пайдалана отырып анықтайды және түзетеді. Егер дискілік жетегі бір секторда бірнеше оқу қатесін анықтаса, ол операциялық жүйенің қатысуынсыз (бірақ бұл секторға келесі жазуға дейін кешіктірілуі мүмкін) бұзылған секторды қосалқы секторға қайта карталау арқылы дискінің басқа бөлігінде бұзылған сектордың көшірмесін жасайды. Бұл "жайсыз түзетуді" S.M.A.R.T. және көптеген операциялық жүйелер үшін қол жетімді құралдарды пайдалану арқылы бақылауға болады, бұл дискідегі нашарлайтын SMART параметрлерін қадағалап, жақындағы істен шығуларды автоматты түрде тексеруге мүмкіндік береді. Btrfs, HAMMER, ReFS және ZFS сияқты кейбір файлдық жүйелер деректердің жасырын бұзылуын анықтау үшін ішкі деректер мен метадеректерді тексеру жиынтығын пайдаланады. Сонымен қатар, егер бұзылу анықталса және файлдық жүйе деректерді қорғауды қамтамасыз ететін интеграцияланған RAID механизмдерін қолданса, мұндай файлдық жүйелер бұзылған деректерді де ашық түрде қалпына келтіре алады. Бұл тәсіл, әдетте, деректердің аяғынан аяғына дейін қорғалуы ретінде белгілі, сақтау стегіндегі әртүрлі қабаттарды қамтымайтын және деректер әртүрлі қабаттар арасындағы шекарадан өткен кезде деректердің бұзылуына жол беретін басқа деректердің тұтастығын қорғау тәсілдерімен салыстырғанда толық деректерді қорғауды қамтамасыз етеді. Деректерді тазалау – бұл деректердің бұзылу ықтималдығын азайтудың тағы бір әдісі, себебі дискідегі қателер көптеген қателер жинақталып, паритеттік биттердің санын басып тастамас бұрын анықталып, қалпына келтіріледі. Паритет әр оқылымда тексерілуінің орнына, паритет дискіні тұрақты түрде сканерлеу кезінде тексеріледі, бұл көбінесе төмен басымдықты фонолық процесте жасалады. "Деректерді тазалау" операциясы паритеттік тексеруді іске қосады. Егер пайдаланушы дискіден деректерді оқитын қарапайым бағдарламаны іске қосса, онда дискілік подсистемада parity check on read қолдау көрсетілмесе және қосылмаса, паритет тексерілмейді. Деректердің бұзылуын анықтау және түзету үшін тиісті механизмдер қолданылса, деректердің тұтастығын сақтауға болады. Бұл, әсіресе, коммерциялық қолданбаларда (мысалы, банк ісі) маңызды, онда анықталмаған қате деректер базасының индексін бұзуы немесе шот қалдығына күрт әсер ететін деректерді өзгертуі мүмкін, сондай-ақ шифрланған немесе сығылған деректерді пайдалану кезінде, онда кішкентай қате үлкен деректер жиынтығын пайдалануға жарамсыз етуі мүмкін.