Кіріспе

Деректерді сақтау механизмінің түрі Контенттік адрестеулі сақтау (CAS), сондай-ақ контенттік адрестеулі сақтау немесе бекітілген контенттік сақтау деп те аталады, – ақпаратты оның атауы немесе орналасқан жері емес, мазмұны бойынша іздеуге мүмкіндік беретін сақтау тәсілі. Бұл жоғары жылдамдықты сақтау және үкіметтік ережелерге сәйкес сақталған құжаттар сияқты бекітілген контентті алу үшін қолданылған. Контенттік адрестеулі сақтау контенттік адрестеулі жадқа ұқсас. CAS жүйелері файлдың мазмұнын криптографиялық хэш-функция арқылы өңдеп, бірегей кілтті, яғни «контенттік мекенжайды» жасайды. Файл жүйесінің каталогы осы мекенжайларды және контенттің физикалық сақталу орнына сілтемелерді сақтайды. Бірдей файлды сақтау әрекеті бірдей кілтті тудыратындықтан, CAS жүйелері файлдардың бірегейлігін қамтамасыз етеді. Ал файл өзгертілсе, жаңа кілт жасалады, сондықтан CAS жүйелері файлдың өзгермегенін кепілдік береді. CAS 2000 жылдары, әсіресе 2002 жылы АҚШ-та Sarbanes–Oxley заңы қабылданғаннан кейін маңызды нарыққа айналды, бұл заң ұзақ мерзімге көптеген құжаттарды сақтауды және оларды сирек қолдануды талап етті. Дәстүрлі файлдық жүйелердің және жаңа бағдарламалық қамтамасыздардың үнемі артып келе жатқан өнімділігі 2018 жылдан кейін сирек кездесетін ескі CAS жүйелерінің құндылығын төмендетті. Дегенмен, контенттік адрестеу принциптері компьютерлік ғалымдар үшін әлі де қызығушылық тудырады және көптеген жаңа технологиялардың, мысалы, өзара файл алмасу, криптовалюталар және таратылған есептеулердің негізін құрайды.

Орналасуға негізделген тәсілдер

Дәстүрлі файлдық жүйелер әдетте файлдарды олардың аттары бойынша қадағалайды. Флоппи-дискі сияқты кездейсоқ кіруге болатын құралдарда бұл файл аттары мен деректерге сілтемелер тізімі бар каталогты пайдалану арқылы іске асырылады. Сілтемелер дискідегі физикалық орналасқан жерге, әдетте дискілік секторларды пайдаланады. Көбірек заманауи жүйелерде және қатты дискілер сияқты үлкен форматтарда каталог көптеген кіші каталогтарға бөлінеді, олардың әрқайсысы файлдардың жалпы жиынтығының бір бөлігін қадағалайды. Кіші каталогтар өздері аталық каталогтағы файлдар ретінде көрсетіледі, бұл иерархиялық немесе ағаш тәрізді ұйымды құрайды. Нақты бір файлға дейін жететін каталогтар тізбегі "жол" деп аталады. CAS контекстінде, осы дәстүрлі тәсілдер "орналасқан жер бойынша мекенжайлау" деп аталады, себебі әрбір файл физикалық сақтаудағы бір немесе бірнеше орынның тізімімен, жолмен және файл атымен көрсетіледі. Осы жүйелерде екі түрлі атпен бір файл дискіде екі файл ретінде сақталады, демек екі мекенжайға ие болады. Егер бір файл, тіпті бірдей атпен, каталог иерархиясында бірнеше жерде сақталса, бұл да осылай болады. Бұл оларды цифрлық архив үшін идеалды емес етеді, онда кез келген бірегей ақпарат тек бір рет сақталуы керек.

CAS және FCS

Көптеген салаларда орналасуға негізделген сақтау кеңінен қолданылса да, бұл әрқашан солай болған жоқ. Бұрын үлкен жиынтықтан деректерді алудың ең көп таралған тәсілі – құжаттың мазмұнына негізделген идентификаторды пайдалану болатын. Мысалы, ISBN жүйесі әр кітапқа бірегей нөмір беру үшін қолданылады. Егер сіз "ISBN 0465048994" деген сұраныс жіберсеңіз, "Why Information Grows" кітабының орналасқан жерлерінің тізімі беріледі. Көптеген орналасқан жерлер көрсетілсе де, олардың барлығы бір жұмысты білдіреді, ал пайдаланушы ең қолайлы жерді таңдай алады. Сонымен қатар, егер осы орналасқан жерлердің бірі өзгерсе немесе жоғалса, мазмұнды басқа кез келген орналасқан жерден табуға болады. Кілттер адам оқи алмайтындықтан, CAS жүйелері пайдаланушыларға құжатты табуға көмектесетін метадеректерді сақтайтын екінші каталогты іске асырады. Бұл каталог әдетте файл атауын қамтиды, бұл классикалық атау бойынша іздеуді пайдалануға мүмкіндік береді. Сонымен қатар, каталогта ISBN немесе ISSN кодтары, пайдаланушы берген кілт сөздер, уақыт және күндік белгілер, сондай-ақ толық мәтіндік іздеу индекстері сияқты жалпы идентификациялық жүйелерге арналған өрістер болады. Пайдаланушылар осы каталогтарды іздеп, кілтті ала алады, содан кейін оны нақты құжатты алу үшін пайдаланады. Бұл уақытқа орайлы болды, өйткені 2002 жылы қабылданған Sarbanes-Oxley заңы компаниялардан үлкен көлемдегі құжаттарды ұзақ мерзімге сақтауды және оларды кейіннен өңдемеуді қамтамасыз ететін тәсілмен сақтауды талап етті. Көп ұзамай басқа ірі жүйелік жеткізушілерден де ұқсас өнімдер пайда болды. 2004 жылдың ортасында SNIA тобы CAS жүйелері үшін стандартты мінез-құлық және өзара іс-қимыл ережелерін жасау үшін бірқатар CAS провайдерлерімен жұмыс істей бастады. CAS-тан басқа, CAS сияқты мүмкіндіктерді қолда бар өнімдерге қосатын бірқатар ұқсас өнімдер де пайда болды, олардың ішінде IBM Tivoli Storage Manager болды. Бұлтты есептеудің және Amazon S3 сияқты серпімді бұлтты сақтау жүйелерінің пайда болуы арнайы CAS жүйелерінің құндылығын одан әрі төмендетті. Dell 2016 жылы EMC компаниясын сатып алды және 2018 жылы бастапқы Centera сатылымын тоқтатып, өздерінің серпімді сақтау өнімін ұсынды. CAS 2000 жылдарға дейін әріптестермен байланысты болған жоқ, сол кезде үйлер мен кеңселерде Интернетке қол жеткізудің жылдам өсуі көптеген компьютер пайдаланушыларын файлдармен алмасуға итермеледі, бастапқыда Napster сияқты орталықтан басқарылатын қызметтерде. Алайда, Napster-ге қарсы сот шешімі BitTorrent сияқты файлдарды бөлісу қызметтерінің тәуелсіз дамуына әкелді, оларды орталықтан тоқтату мүмкін емес еді. Орталық федерациялық серверсіз жұмыс істеу үшін бұл қызметтер бірегей файлдардың сенімді көшіруін және оңай іздеуін қамтамасыз ету үшін CAS-ке көп сүйенді. Сонымен қатар, 2000 жылдары ашық кодты бағдарламалық қамтамасыз ету қозғалысының өсуі Git сияқты CAS негізіндегі қызметтердің жылдам таралуына әкелді, бұл версияны басқару жүйесі көптеген криптографиялық функцияларды қолданады. Осы уақытта ашық кілтті криптографияны пайдаланушылар өздерінің ашық кілттерін кілт серверлері сияқты жүйелерде сақтау үшін CAS-ты пайдаланды. 2010 жылдары мобильді есептеу және жоғары сыйымды мобильді кеңжолақты желілердің өсуі, күнделікті есептеу тапсырмалары үшін веб-қосымшаларға сенімнің артуы Интернет қызметтерінде кең таралған клиент-серверлік модельге әсер етті, бұл сілтемелердің бұзылуын жылдамдатып, орталықтандырылған бұлтты хостингке сенімділікті арттырды. Сонымен қатар, ірі технологиялық компаниялардың есептеу қуатын орталықтандыруына, монополиялық биліктің теріс пайдалануына және жеке өмірге қатысты мәселелерге байланысты орталықтандырылмаған жүйелерді құру мақсатымен бірқатар жобалар құрылды. Bitcoin әмиан мекенжайларын басқару үшін CAS және қоғамдық/жеке кілт жұптарын пайдаланады, басқа көптеген криптовалюталар да солай істейді. IPFS желісінде ортақ хостталған файлдарды анықтау және оларға сілтеме беру үшін CAS-ты пайдаланады. Әдетте әр түрлі орындардан Интернетке кіретін смартфондарда жұмыс істеуге арналған көптеген басқа әріптестер жүйелері CAS-ты пайдаланушы деректерін ыңғайлылық және деректердің құпиялылығы үшін сақтауға және қол жеткізуге пайдаланады, мысалы, қауіпсіз жедел хабар алмасу.

Меншікті

Centera CAS жүйесі желілік түйіндер сериясынан тұрады (әдетте Linux-ты іске қосатын үлкен серверлер), сақтау түйіндері мен кіру түйіндеріне бөлінген. Кіру түйіндері мазмұн мекенжайларының синхронды тізімін және әр мекенжайды табуға болатын тиісті сақтау түйіндерін сақтайды. Жаңа дерек элементі немесе блобы қосылғанда, құрылғы мазмұнның хэшін есептеп, осы хэшті блобтың мазмұн мекенжайы ретінде қайтарады. Жоғарыда айтылғандай, хэш бірдей мазмұнның бұрыннан бар еместігін тексеру үшін ізделеді. Егер мазмұн бар болса, құрылғыға қосымша қадамдар орындаудың қажеті жоқ; мазмұн мекенжайы дұрыс мазмұнға сілтейді. Әйтпесе, деректер сақтау түйініне жіберіліп, физикалық ортаға жазылады. Құрылғыға мазмұн мекенжайы берілгенде, ол бірінші кезекте берілген мазмұн мекенжайының физикалық орналасқан жері туралы ақпаратты іздейді. Содан кейін ақпарат сақтау түйінінен алынып, деректердің нақты хэші қайта есептеледі және тексеріледі. Бұл аяқталғаннан кейін құрылғы сұралған деректерді клиентке жеткізе алады. Centera жүйесінде әр мазмұн мекенжайы бірнеше түрлі дерек блобын, сондай-ақ қосымша метадеректерді көрсетеді. Клиент бар мазмұн блогына қосымша блоб қосса, жүйе мазмұн мекенжайын қайта есептейді. Деректердің қосымша қауіпсіздігін қамтамасыз ету үшін Centera кіру түйіндері оқу немесе жазу операциясы жүргізілмей тұрғанда, әр блобтың кем дегенде екі данасының бар-жоғын және олардың толықтығын тексеріп, сақтау түйіндерімен үнемі байланысады. Сонымен қатар, оларды басқа, мысалы, басқа жердегі Centera жүйесімен дерек алмасу үшін конфигурациялауға болады, осылайша деректердің кездейсоқ жоғалуына қарсы сақтық шараларын күшейтеді. IBM-нің CAS-тың басқа да нұсқасы бар, ол бағдарламалық қамтамасыз ету негізінде, Tivoli Storage Manager 5.3, немесе аппараттық негізде, IBM DR550 болуы мүмкін. Архитектурасы өзгеше, өйткені ол иерархиялық сақтауды басқару (HSM) дизайнына негізделген, ол WORM дискісін ғана емес, WORM таспасын және WORM дискісінен WORM таспасына және керісінше деректерді көшіруді қолдау сияқты қосымша икемділікті қамтамасыз етеді. Бұл апат жағдайында деректерді қалпына келтіру кезінде қосымша икемділікті қамтамасыз етеді, сондай-ақ деректерді дискіден таспаға көшіру арқылы сақтау шығындарын азайту мүмкіндігін береді. Тағы бір кең таралған іске асыру – iTernity-ден iCAS. iCAS тұжырымы контейнерлерге негізделген. Әрбір контейнер өзінің хэш-мәнімен анықталады. Контейнерде әртүрлі сандағы тұрақты мазмұнды құжаттар болады. Контейнер өзгертілмейді, ал хэш-мәні жазу процесінен кейін бекітіледі.

Ашық код

Venti: бастапқыда Bell Labs-тен Plan 9 үшін әзірленген және қазір User Space-тен Plan 9 құрамында Unix сияқты жүйелер үшін қол жетімді болған алғашқы мазмұндық адрестік сақтау серверлерінің бірі. CAS+ ашық кодты іске асырудың алғашқы қадамы – Twisted Storage. Tahoe Least Authority File Store: CAS-тің ашық кодты іске асырылуы. Git: пайдаланушы кеңістігіндегі CAS файлдық жүйесі. Git негізінен бастапқы кодты басқару жүйесі ретінде қолданылады. git annex: басқаратын файлдар үшін мазмұндық адрестік сақтауды пайдаланатын файлдарды синхрондаудың үлестірілген жүйесі. Ол Git-ке және олардың файлдық жүйедегі орналасқан жерін индекстеу үшін символдық сілтемелерге сүйенеді. Project Honeycomb: CAS жүйелері үшін ашық кодты API. XAM: Storage Networking Industry Association қолдауымен әзірленген интерфейс. Ол CAS (және CAS сияқты) өнімдері мен жобаларын архивтеу үшін стандартты интерфейс ұсынады. Perkeep: 2011 жылғы мазмұндық адрестік сақтаудың артықшылықтарын "бұқараға" жеткізуге бағытталған жоба. Ол әртүрлі қолдану жағдайларында, соның ішінде үлестірілген сақтық көшірмелер, әдепкі бойынша жасалған көшірмелер, нұсқамен басқарылатын файлдық жүйе және орталықтандырылмаған, рұқсаттармен басқарылатын файлдарды ортақтастыру үшін қолданылады. Irmin: OCaml "тұрақты сақтау орындары үшін кітапхана, snapshot, тармақталу және кері қайтару механизмдерімен"; Git-пен бірдей дизайн принциптері. Cassette: C#/.NET үшін CAS-тің ашық кодты іске асырылуы. Arvados Keep: ашық кодты мазмұндық адрестік үлестірілген сақтау жүйесі. Ол геномдық деректерді сақтау және өңдеу сияқты үлкен көлемдегі, есептеулерді көп қажет ететін дерек ғылымы жұмыстары үшін арналған. Infinit: Docker Inc. компаниясы сатып алған мазмұндық адрестік және орталықтандырылмаған (теңдестірілген) сақтау платформасы. InterPlanetary File System (IPFS): мазмұндық адрестік, теңдестірілген гипермедиа тарату протоколы. casync: Леннарт Поттерингтің Интернет арқылы жиі жаңартылатын файлдық жүйе бейнелерін таратуға арналған Linux бағдарламалық құралы.