- স্থায়ী মেমোরি (PMEM) DRAM এবং এর মধ্যে একটি নতুন স্তর তৈরি করে এসএসডিকম ল্যাটেন্সির সাথে একত্রিত করা স্টোরেজ অ-উদ্বায়ী।
- এটি অ্যাপ ডাইরেক্ট, ডিএএক্স, ভিপিএমইএম এবং ভিপিএমইএমডিস্ক মোডে বর্ধিত মেমরি বা অতি-দ্রুত স্টোরেজ হিসাবে কাজ করতে পারে।
- উইন্ডোজে, লিনাক্স এবং vSphere একটি ক্যাশে, লজিক্যাল ডিস্ক, অথবা ভার্চুয়াল NVDIMM হিসাবে সংহত করে ত্বরান্বিত করে ডাটাবেস এবং সমালোচনামূলক লোড।
- এর মূল্য কৌশলগত ব্যবহারের মধ্যে নিহিত যেখানে গতি, স্থায়িত্ব এবং ক্ষমতা NVMe এর তুলনায় এর উচ্চ খরচের ক্ষতিপূরণ দেয়।

স্থায়ী স্মৃতি বা PMEM এটি এমন একটি ধারণা হয়ে উঠেছে যা নিয়ে সবাই চরম কর্মক্ষমতা, ইন-মেমোরি ডাটাবেস, অথবা উন্নত ভার্চুয়ালাইজেশনের কথা বললে আলোচনা করে। এটি কেবল "অন্য ধরণের RAM" বা "অন্য ধরণের ডিস্ক" নয়: এটি মেমরি এবং স্টোরেজ শ্রেণিবিন্যাসের একটি নতুন স্তর যা উভয় জগতের সেরাটিকে মিশ্রিত করে।
স্থায়ী স্মৃতি আসলে কী, এটি কীভাবে কাজ করে এবং অন্যান্য ধরণের স্মৃতি থেকে এটি কীভাবে আলাদা তা বোঝা। ঐতিহ্যবাহী DRAM, NVMe SSD, অথবা ক্লাউড স্টোরেজ বোঝা হল সুচিন্তিত প্রযুক্তিগত সিদ্ধান্ত নেওয়ার মূল চাবিকাঠি। এই প্রবন্ধে, আমরা ধারণাটি ভেঙে ফেলব, এর ব্যবহারের মোডগুলি (মেমরি, অ্যাপ ডাইরেক্ট, vPMem, vPMemDisk, ইত্যাদি), এটি কীভাবে Windows, Linux, vSphere এবং কন্টেইনার পরিবেশের সাথে একীভূত হয়, সেইসাথে বাস্তব-বিশ্বের ব্যবহারের ক্ষেত্রে এবং সীমাবদ্ধতাগুলি অন্বেষণ করব।
স্থায়ী স্মৃতি (PMEM বা PMem) কী?
স্থায়ী স্মৃতি এটি এক ধরণের মাধ্যম অ-উদ্বায়ী সঞ্চয়স্থান এটি বাস্তবে একটি DIMM মডিউল আকারে আসে, যার অর্থ এটি DRAM-এর পাশাপাশি সার্ভারের স্ট্যান্ডার্ড মেমোরি স্লটে ইনস্টল করা থাকে। ঐতিহ্যবাহী RAM-এর বিপরীতে, এটি সিস্টেম বন্ধ, পুনঃসূচনা, বিদ্যুৎ বিভ্রাট বা সিস্টেম ক্র্যাশের পরেও এর বিষয়বস্তু ধরে রাখে।
এর আচরণ মেমরি এবং স্টোরেজের মাঝামাঝি।এটি খাঁটি DRAM এর চেয়ে ধীর, কিন্তু SSD এর তুলনায় অনেক দ্রুত এবং কম ল্যাটেন্সি সহ, এমনকি NVMe এর চেয়েও। ইনস্টল করার সময় মেমরি বাসযেকোনো ঐতিহ্যবাহী স্টোরেজ ইউনিটের তুলনায় ডেটা সিপিইউর অনেক কাছাকাছি, তাই অ্যাক্সেস ন্যানোসেকেন্ডে পরিমাপ করা হয়, মাইক্রোসেকেন্ড বা মিলিসেকেন্ডে নয়।
স্থায়ী মেমরি মডিউল DRAM-এর তুলনায় এদের ধারণক্ষমতা অনেক বেশি (প্রতি মডিউলে ১২৮ জিবি, ২৫৬ জিবি এবং ৫১২ জিবি সাধারণ আকার), এবং RAM-এর তুলনায় প্রতি জিবি খরচ উল্লেখযোগ্যভাবে কম, যদিও NVMe SSD-এর তুলনায় এখনও বেশি। এই কারণেই এগুলোকে একটি মধ্যবর্তী বিকল্প হিসেবে ব্যবহার করা হয়: বিশুদ্ধ DRAM-এর সম্পূর্ণ খরচ পরিশোধ না করেই ব্যাপকভাবে স্টোরেজ সম্প্রসারণ করা, একই সাথে ঐতিহ্যবাহী স্টোরেজের তুলনায় গতিও বৃদ্ধি করা।
আরেকটি গুরুত্বপূর্ণ বিষয় হল অধ্যবসায়।সিস্টেমটি নিয়ন্ত্রিত পদ্ধতিতে বন্ধ হয়ে গেলেও বা বিদ্যুৎ বিভ্রাটের কারণে ডেটা রেকর্ড করা থাকে। এটি PMEM কে অত্যন্ত দ্রুত স্টোরেজ গুরুত্বপূর্ণ কাঠামোর জন্য (মেটাডেটা, বরাদ্দ সারণী, ইন-মেমরি ডাটাবেস, লগ লেনদেন, ইত্যাদি)।
PMEM এর মূলনীতি এবং অ্যাক্সেস মোড
স্থায়ী মেমোরি নিয়মিত RAM এর মতো একইভাবে ব্যবহৃত হয় না।অপারেটিং সিস্টেম এবং প্ল্যাটফর্মের উপর নির্ভর করে, এটি ব্লক স্টোরেজ, বাইট-অ্যাড্রেসযোগ্য মেমরি, অথবা উভয়ের সংকর হিসাবে উপস্থাপন করা যেতে পারে। এখানে বেশ কয়েকটি মৌলিক ধারণা কার্যকর হয়।
উইন্ডোজ এবং লিনাক্সে অ্যাক্সেস পদ্ধতি PMEM গুলিকে সাধারণত দুটি প্রধান পরিবারে ভাগ করা হয়:
- অ্যাক্সেস ব্লক করুনযেখানে PMEM একটি "ক্লাসিক" স্টোরেজ ডিভাইসের মতো আচরণ করে যা ফাইল সিস্টেম এবং স্টোরেজ স্ট্যাকের মধ্য দিয়ে যায়।
- সরাসরি অ্যাক্সেস (DAX টাইপ), যেখানে এটি বাইট-অ্যাড্রেসযোগ্য মেমরি হিসাবে প্রকাশিত হয়, স্টোরেজ স্ট্যাকের একটি বড় অংশ এড়িয়ে যায় এবং ল্যাটেন্সি আরও হ্রাস করে।
ব্লক অ্যাক্সেস মোডেPMEM ফাইল সিস্টেম দিয়ে ফরম্যাট করা যেতে পারে যেমন এনটিএফএস উইন্ডোজে ReFS, অথবা লিনাক্সে EXT4/XFS, এমনভাবে ব্যবহার করা হয় যেন এটি একটি অত্যন্ত দ্রুত ডিস্ক। যখন সামঞ্জস্য এবং সরলতা কাঙ্ক্ষিত হয় তখন এটি প্রস্তাবিত মোড, বিশেষ করে এমন পরিষেবাগুলির জন্য যা স্থায়ী মেমরির জন্য বিশেষভাবে অপ্টিমাইজ করা হয় না।
DAX মোডেঅ্যাপ্লিকেশনটি সরাসরি তার ঠিকানা স্থানে স্থায়ী মেমোরি ম্যাপ করে ডেটা অ্যাক্সেস করে। অ্যাক্সেস হল "মেমোরি" অ্যাক্সেস, "ব্লক" অ্যাক্সেস নয়, যার ফলে ন্যূনতম ল্যাটেন্সি হয়। তবে, যদি সঠিকভাবে প্রোগ্রাম এবং কনফিগার না করা হয়, তাহলে অসম্পূর্ণ লেখার ক্ষেত্রে ডেটা ক্ষতির ঝুঁকি থাকে, তাই DAX কে মেকানিজমের সাথে একত্রিত করা যেমন... ব্লক ট্রান্সলেশন টেবিল (BTT) অথবা অনুবাদ টেবিল ব্লক করুন।
অঞ্চল, নেমস্পেস এবং PMemDisk
PMEM ভৌত মডিউল অপারেটিং সিস্টেম থেকে এগুলি খুব কমই পৃথকভাবে পরিচালিত হয়। কর্মক্ষমতা, ক্ষমতা বৃদ্ধি বা প্রশাসনের সুবিধার্থে এগুলি সাধারণত একত্রিত করা হয় এবং এখানে বেশ কয়েকটি ধারণা কার্যকর হয়।
একটি স্থায়ী স্মৃতি অঞ্চল এটি এক বা একাধিক গোষ্ঠীবদ্ধ মডিউলের একটি সেট, যা প্রায়শই কনফিগার করা হয় BIOS- র অথবা সার্ভারের UEFI। এগুলি প্রায়শই একটি ইন্টারলিভড সেট তৈরি করে, যাতে উপলব্ধ ব্যান্ডউইথ বাড়ানোর জন্য ধারাবাহিক মেমরি ঠিকানাগুলি বেশ কয়েকটি মডিউলের মধ্যে বিতরণ করা হয়।
উইন্ডোজ সার্ভার এবং অ্যাজুরে লোকাল এর মতো প্ল্যাটফর্মগুলিতেএই অঞ্চলগুলিতে ডিস্ক নামক লজিক্যাল ডিস্কগুলি সংজ্ঞায়িত করা হয়। পিএমইএমডিস্কএকটি PmemDisk হল কেবল অ-উদ্বায়ী মেমরি ঠিকানাগুলির একটি সংলগ্ন পরিসর যা সিস্টেমে উপস্থাপন করা হয় যেন এটি একটি ডিস্ক ড্রাইভ বা LUN।
প্রতিটি স্থায়ী মেমোরি মডিউলে একটি ট্যাগ স্টোরেজ এরিয়া থাকে (লেবেল স্টোরেজ এরিয়া, LSA) যেখানে কনফিগারেশন মেটাডেটা (নেমস্পেস, অঞ্চল সদস্যপদ, ইত্যাদি) সংরক্ষণ করা হয়। cmdlets এর মতো সরঞ্জামগুলি শক্তির উৎস (Get-PmemDisk, Get-PmemPhysicalDevice, Get-PmemUnusedRegionইত্যাদি) আপনাকে প্রতিটি PmemDisk-এ কোন ভৌত মডিউলগুলি অংশগ্রহণ করে তা দেখতে, তাদের স্থিতি পরীক্ষা করতে এবং স্থায়ী মেমরি লজিক্যাল ডিস্ক তৈরি বা মুছে ফেলার অনুমতি দেয়।
ESXi/vSphere পরিবেশেধারণাটি একই রকম, কিন্তু পরিভাষাটি পরিবর্তিত হয়: আমরা কথা বলি PMem নেমস্পেস হাইপারভাইজার GPT টেবিল ব্যবহার করে এই ভলিউমগুলিকে লজিক্যাল ভলিউমে সনাক্ত করে এবং একত্রিত করে। এই ভলিউমগুলিকে PMem ডেটাস্টোর হিসাবে মাউন্ট করা হয়, যা পরবর্তীতে vPMem বা vPMemDisk হিসাবে ভার্চুয়াল মেশিনে উন্মুক্ত করা হয়।
ব্লক ট্রান্সলেশন টেবিল (BTT) এবং ডেটা সুরক্ষা
PMEM বনাম SSD-এর একটি সূক্ষ্ম বিবরণ সমস্যা হল যে স্থায়ী মেমরি মডিউলগুলিতে স্ট্যান্ডার্ডের মতো "আংশিক লেখার" বিরুদ্ধে একই ধরণের সুরক্ষা অন্তর্ভুক্ত থাকে না। ছেঁড়া লেখা যা আমরা অনেক ব্যবসায়িক ফ্ল্যাশ ড্রাইভে খুঁজে পাই।
যদি বিদ্যুৎ বিভ্রাট বা সিস্টেম ক্র্যাশ ঘটে লেখার ঠিক মাঝখানে, কিছু নতুন তথ্য লেখা হতে পারে যখন কিছু পুরাতন তথ্য থেকে যায়, যার ফলে সেক্টরগুলি একটি অসঙ্গত অবস্থায় থাকে। এই ঝুঁকি কমাতে, নিম্নলিখিতগুলি ব্যবহার করা হয়: ব্লক ট্রান্সলেশন টেবিল (BTT), একটি স্তর যা পারমাণবিক সেক্টর আপডেট সেমান্টিক্স অফার করে।
BTT লজিক্যাল এবং ফিজিক্যাল অ্যাড্রেসের মধ্যে অনুবাদক হিসেবে কাজ করে এবং এটি নিশ্চিত করে যে, অ্যাপ্লিকেশনগুলির ক্ষেত্রে, লেখাগুলি "ঐতিহ্যবাহী ব্লক" লেখার মতো প্রদর্শিত হয়: সেগুলি হয় সম্পূর্ণরূপে সম্পন্ন হয় অথবা অদৃশ্য হয়ে যায়। ব্লক অ্যাক্সেস এবং DAX মোড উভয় ক্ষেত্রেই BTT সক্ষম করা অত্যন্ত বাঞ্ছনীয়, বিশেষ করে যেহেতু মেমরি সেমান্টিক্স ব্যবহার করে অ্যাপ্লিকেশন ডেটা অ্যাক্সেস করা হলেও, ফাইল সিস্টেম মেটাডেটা এখনও একটি ব্লক মডেল ব্যবহার করে।
উইন্ডোজে, BTT হল PmemDisk এর একটি সম্পত্তি।অতএব, এটি তৈরির সময় সক্রিয় থাকতে হবে (উদাহরণস্বরূপ, এর সাথে New-VHD ... -AddressAbstractionType BTT) অথবা একটি বিদ্যমান হার্ড ড্রাইভকে BTT তে রূপান্তর করুন Convert-VHDরূপান্তরের পরে, নেমস্পেস শনাক্তকারীটি পুনরায় তৈরি করার পরামর্শ দেওয়া হচ্ছে Set-VHD -ResetDiskIdentifier একই ভার্চুয়াল মেশিনে উভয় ডিস্ক সহাবস্থান করলে দ্বন্দ্ব এড়াতে।
স্থায়ী মেমরি হার্ডওয়্যার: NVDIMM এবং Optane
স্থায়ী স্মৃতি কোনও একক ভৌত প্রযুক্তি নয়।বরং সমাধানের একটি পরিবার যা অপারেটিং সিস্টেমের দৃষ্টিকোণ থেকে একই রকম আচরণ করে। সর্বাধিক পরিচিতগুলির মধ্যে রয়েছে:
- এনভিডিআইএমএম-এনযে মডিউলগুলি DRAM-এর সাথে NAND ফ্ল্যাশকে একত্রিত করে, ব্যাটারি বা সুপারক্যাপাসিটর দ্বারা ব্যাকআপ নেওয়া হয়। পাওয়ার অন করলে, ডেটা DRAM-এ লোড করা হয়; যখন পাওয়ার অফ হয়ে যায় বা পাওয়ার চলে যায়, তখন এটি ফ্ল্যাশ করার জন্য লেখা হয়।
- ইন্টেল অপটেন ডিসি পারসিসটেন্ট মেমোরি (ডিসিপিএমএম): 3D XPoint প্রযুক্তির উপর ভিত্তি করে তৈরি মডিউল, যা মেমরির কাছাকাছি ল্যাটেন্সি এবং DRAM এর চেয়ে অনেক উন্নত ক্ষমতা প্রদানের জন্য ডিজাইন করা হয়েছে।
উইন্ডোজ সার্ভার ২০১৬ এবং ২০১৯, অ্যাজুরে লোকাল এবং অন্যান্য প্ল্যাটফর্মেএই মডিউলগুলির জন্য সমর্থন সংস্করণের উপর নির্ভর করে পরিবর্তিত হয়, তবে সাধারণ ধারণাটি একই: এগুলি বিশুদ্ধ স্থায়ী মেমরি (অ্যাপ ডাইরেক্ট) বা "বর্ধিত" মেমরি (মেমরি মোড) হিসাবে ব্যবহার করা যেতে পারে।
অপটেন ডিসি পিএমইএম তিনটি প্রধান অপারেটিং মোডের অনুমতি দেয়যা সাধারণত সার্ভারের BIOS-এ কনফিগার করা হয়:
- মেমোরি মোডPMEM উচ্চ-ক্ষমতার প্রধান মেমোরি হিসেবে কাজ করে, অন্যদিকে DRAM সবচেয়ে বেশি ব্যবহৃত ডেটার জন্য দ্রুত ক্যাশে হিসেবে ব্যবহৃত হয়। এই মোডে, মেমোরি অস্থির আচরণ করে; যদি বিদ্যুৎ সংযোগ বিচ্ছিন্ন করা হয়, তাহলে ডেটা হারিয়ে যায়।
- অ্যাপ ডাইরেক্ট মোডPMEM কে স্থায়ী অ-উদ্বায়ী মেমোরি হিসেবে প্রকাশ করা হয়, যা অপারেটিং সিস্টেম দ্বারা স্টোরেজ অঞ্চল বা বাইট-অ্যাড্রেসযোগ্য মেমোরি হিসেবে অ্যাক্সেসযোগ্য। এটি ইন-মেমোরি ডাটাবেস, অতি দ্রুত স্টোরেজ এবং স্থায়ীত্ব-সংবেদনশীল কাজের চাপের জন্য আদর্শ মোড।
- মিশ্র মোডমডিউলের একটি অংশ মেমোরি মোডের জন্য এবং অন্যটি অ্যাপ ডাইরেক্টের জন্য সংরক্ষিত, যা বর্ধিত অস্থির মেমোরি ক্ষমতা এবং স্থায়ী সঞ্চয়স্থানের ভারসাম্য বজায় রাখার অনুমতি দেয়।
"মেমোরি মোড" কে DAX এর সাথে গুলিয়ে ফেলা গুরুত্বপূর্ণ নয়।মেমোরি মোড PMEM কে ধীর RAM হিসেবে বিবেচনা করে এবং স্থিরতা হারায়DAX, যেখানে এটি স্থায়ী ভলিউম অ্যাক্সেস করার একটি মোড যা রিবুটের মধ্যে ডেটা ধরে রাখে।
ভার্চুয়ালাইজেশন পরিবেশে PMEM (vSphere এবং ESXi)
vSphere-এ, 6.7 সংস্করণ থেকে স্থায়ী মেমরি সমর্থিত। এবং পরবর্তীতে। এই পরিবেশে, হোস্টের PMEM মডিউলগুলিকে একটি উচ্চ-গতির স্থানীয় ডেটা স্টোর হিসাবে উপস্থাপন করা হয় যা ভার্চুয়াল মেশিনগুলি দুটি উপায়ে ব্যবহার করতে পারে।
vPMem (ভার্চুয়াল স্থায়ী মেমরি) PMEM অতিথি অপারেটিং সিস্টেমকে একটি হিসাবে প্রকাশ করে ভার্চুয়াল NVDIMMভিএমের দৃষ্টিকোণ থেকে, মনে হচ্ছে হোস্টটিতে ভৌত NVDIMM মডিউল রয়েছে, যা অতিথি অপারেটিং সিস্টেম এবং অ্যাপ্লিকেশনগুলিকে বাইট-অ্যাড্রেসেবল মোডে স্থায়ী মেমরি অ্যাক্সেস করার অনুমতি দেয়।
vPMemDisk (ভার্চুয়াল পারসিস্ট্যান্ট মেমোরি ডিস্ক) এটি ভিন্নভাবে কাজ করে: স্থায়ী মেমরি একটি ভার্চুয়াল SCSI ডিস্ক হিসাবে উপস্থাপিত হয় যার বিষয়বস্তু হোস্টের PMem ডেটা স্টোরে থাকে। এই বিকল্পটি পুরানো অপারেটিং সিস্টেম বা ডিস্ক-কেবল অ্যাপ্লিকেশনের জন্য খুবই কার্যকর।
ভার্চুয়াল মেশিনের জন্য PMEM এর রিজার্ভেশন এটি করা হয় যখন vPMem ডিস্ক তৈরি করা হয় অথবা vNVDIMM ডিভাইস যোগ করা হয়, এবং এটি VM-এর জন্য সংরক্ষিত থাকে, তা চালু বা বন্ধ করা হোক না কেন, যতক্ষণ না এটি মুছে ফেলা হয় বা স্থানান্তরিত হয়। ক্লাস্টারগুলিতে, সমস্ত VM-এর দ্বারা ব্যবহৃত PMEM-এর যোগফল হোস্ট পুল জুড়ে উপলব্ধ মোট পরিমাণের বেশি হতে পারে না।
উচ্চ প্রাপ্যতা এবং স্থানান্তর সম্পর্কেএর বেশ কিছু সূক্ষ্মতা রয়েছে: vPMem সহ একটি VM কেবলমাত্র এমন একটি হোস্টে স্থানান্তরিত করা যেতে পারে যেখানে PMEM উপলব্ধ রয়েছে, অন্যদিকে vPMemDisk সহ একটি VM PMEM ছাড়াই একটি হোস্টে স্থানান্তরিত করা যেতে পারে যদি ডিস্কটি প্রতিলিপি করা হয় বা Storage vMotion ব্যবহার করে অন্য ধরণের স্টোরেজে স্থানান্তরিত করা হয়।
একটি গুরুত্বপূর্ণ বিষয় হল যে PMEM হল স্থানীয় স্টোরেজ। হোস্টের কাছে, এবং এর সমাধানগুলি ব্যাকআপ ঐতিহ্যবাহী স্টোরেজের উপর নির্ভরশীল প্রতিলিপি পদ্ধতিগুলি সঠিকভাবে কাজ নাও করতে পারে। তদুপরি, গুরুতর হোস্ট ব্যর্থতার পরিস্থিতিতে, উপযুক্ত সুরক্ষা কৌশল বাস্তবায়ন না করা হলে ডেটা ক্ষতি সম্ভব।
উইন্ডোজ সার্ভার, অ্যাজুরে লোকাল এবং স্টোরেজ স্পেস ডাইরেক্টে PMEM
উইন্ডোজ সার্ভার ২০১৯ এবং অ্যাজুরে লোকাল স্থায়ী স্মৃতিকে একীভূত করুন স্টোরেজ স্পেস ডাইরেক্ট (S2D)যা এই পরিবেশে মৌলিক SDS (সফ্টওয়্যার-সংজ্ঞায়িত স্টোরেজ) প্রযুক্তি। এখানে, PMEM ভূমিকা পালন করতে পারে অতি-দ্রুত ক্যাশে স্তর বাকি ইউনিটগুলির জন্য।
স্টোরেজ স্পেসেস ডাইরেক্ট চারটি প্রধান ধরণের ড্রাইভ বোঝেPMem, NVMe, SSD, এবং HDD। সংমিশ্রণের উপর নির্ভর করে, সিস্টেমটি স্বয়ংক্রিয়ভাবে কোন ডিস্কের ধরণটি ক্যাশে হিসাবে ব্যবহার করা হবে এবং কোনটি স্টোরেজ ক্ষমতা হিসাবে ব্যবহার করা হবে তা কনফিগার করে, একটি শ্রেণিবিন্যাস অনুসরণ করে: PMem > NVMe > SSD > HDD।
কিছু সাধারণ সমন্বয় হল:
- PMem + NVMe + HDD: উপরের ক্যাশে হিসেবে PMem, ধারণক্ষমতা হিসেবে NVMe এবং HDD।
- NVMe + SSD: SSD-এর জন্য শুধুমাত্র লেখার জন্য ক্যাশে হিসেবে NVMe।
- SSD + HDD: HDD-এর জন্য পঠন/লেখার ক্যাশে হিসেবে SSD।
যখন ক্যাশে ফ্ল্যাশ ড্রাইভের উপরে থাকে (উদাহরণস্বরূপ, SSD-তে NVMe), এটি মোডে কনফিগার করা আছে শুধুমাত্র লেখারিডগুলি সরাসরি ক্যাপাসিটি ইউনিট থেকে পরিবেশন করা হয় কারণ তাদের ল্যাটেন্সি ইতিমধ্যেই খুব কম, এবং এইভাবে ক্যাশে লেখাগুলিকে একীভূত করতে এবং ক্ষয়ক্ষতি কমাতে নিবেদিত করা যেতে পারে।
যখন ক্যাশে HDD এর উপরে থাকে, মোডে কাজ করে পরছি এবং লিখছিএটি যান্ত্রিক ডিস্কে এলোমেলো অ্যাক্সেস এড়াতে ঘন ঘন পঠিত তথ্য সংরক্ষণ করে এবং লেখার বিস্ফোরণ শোষণ করে, ক্রিয়াকলাপগুলিকে পুনর্বিন্যাস করে যাতে সেগুলি যতটা সম্ভব ক্রমানুসারে ডিস্কে পৌঁছায়।
NVMe, SSD এবং HDD মিশ্রিত পরিস্থিতিতেNVMe ড্রাইভগুলি সাধারণত SSD (শুধুমাত্র লেখার জন্য) এবং HDD (পঠন-লেখার জন্য) উভয়ের জন্য ক্যাশে হিসেবে কাজ করে। সিস্টেমটি গতিশীলভাবে ক্যাশে ড্রাইভগুলিকে 1:N অনুপাতে ধারণক্ষমতা ড্রাইভের সাথে সংযুক্ত করে এবং ড্রাইভগুলি যোগ বা সরানোর সময় বরাদ্দকে পুনরায় ভারসাম্যপূর্ণ করে।
যদি PMem বা NVMe ক্যাশে ড্রাইভ ব্যর্থ হয়ধারণক্ষমতা ইউনিটে এখনও ডাউনলোড না করা ডেটা হারিয়ে গেছে। শুধুমাত্র সেই সার্ভারেতবে, অন্যান্য ক্লাস্টার নোডের অপ্রয়োজনীয় কপিগুলি (উদাহরণস্বরূপ, একটি ট্রিপল মিরর কনফিগারেশনে) স্টোরেজ স্পেস ডাইরেক্টকে স্বয়ংক্রিয়ভাবে তথ্য পুনর্নির্মাণ করতে দেয়।
লিনাক্সে স্থায়ী মেমোরি (উদাহরণ: Red Hat Enterprise Linux)
RHEL এর মতো এন্টারপ্রাইজ লিনাক্স পরিবেশেPMEM সাধারণত ডিভাইস হিসেবে উপস্থাপিত হয় /dev/pmemX অথবা NVDIMM ডিভাইসগুলির মাধ্যমে পরিচালিত কার্নেল টুলস (উদাহরণস্বরূপ, ndctl).
রেড হ্যাট এবং অন্যান্য বিতরণ NVDIMM গুলি ব্যবহারের অনুমতি দিন:
- ব্লক স্টোরেজ ঐতিহ্যবাহী, EXT4, XFS, ইত্যাদি দিয়ে ফর্ম্যাট করা।
- বাইট-অ্যাড্রেসযোগ্য মেমরি DAX মোডে, pmem ডিভাইসে সরাসরি সহায়তা সহ ফাইল সিস্টেম মাউন্ট করা।
- সিস্টেম রুট ডিভাইসবুট টাইম উল্লেখযোগ্যভাবে কমাতে NVDIMM-এ অপারেটিং সিস্টেম ইনস্টল করা বুট.
ঠিক উইন্ডোজের মতোই, আমরা স্টোরেজ ক্লাস মেমরির কথা বলি (এস সি এমএই শব্দটি এমন এক শ্রেণীর ডিভাইসকে বোঝায় যা স্টোরেজ এবং মেমোরিকে একত্রিত করে। সাধারণ ব্যবহারের ক্ষেত্রে অত্যন্ত চাহিদাপূর্ণ ডাটাবেস, উচ্চ-কার্যক্ষমতা সম্পন্ন ক্যাশে, বার্তা সারি এবং এমন সিস্টেম অন্তর্ভুক্ত থাকে যেগুলির ওভারহেড কমাতে হবে। এল সামাজিক নেটওয়ার্কিং পুনঃসূচনা করার পরে পুনরুদ্ধার।
PMEM বনাম DRAM, SSD, HDD এবং NVMe
PMEM এর মূল্য সম্পূর্ণরূপে বোঝার জন্য আমরা ইতিমধ্যেই প্রতিদিন যে প্রযুক্তি ব্যবহার করি তার সাথে এর তুলনা করা মূল্যবান।
ডির্যাম এটি একটি সার্ভারের জন্য দ্রুততম সাধারণ-উদ্দেশ্য মেমোরি, তবে প্রতি গিগাবাইটে সবচেয়ে ব্যয়বহুল এবং সম্পূর্ণরূপে অস্থির। এর সাধারণ DIMM আকার (১৬, ৩২, ৬৪, ১২৮, অথবা ২৫৬ গিগাবাইট) ক্ষমতা বৃদ্ধির সাথে সাথে দাম বৃদ্ধি পায়, খরচ বৃদ্ধির আগে কত ইনস্টল করা যেতে পারে তা সীমিত করে।
এসএসডি এবং এনভিএম এগুলি HDD-এর তুলনায় অনেক উন্নত স্থায়িত্ব এবং কর্মক্ষমতা প্রদান করে, কিন্তু এগুলি এখনও CPU থেকে "দূরে" স্টোরেজ ডিভাইস: এগুলি SATA, SAS, অথবা PCIe-এর মাধ্যমে সংযুক্ত থাকে, মেমোরি বাসে নয়। যদিও তাদের অ্যাক্সেস সময় ভালো, PMEM-এর সাথে পৌঁছায় না, যা RAM-এর আচরণের কাছাকাছি।
এইচডিডি প্রতি টিবি খরচ এবং কাঁচা ধারণক্ষমতার দিক থেকে তারা এখনও জয়ী, কিন্তু তাদের ল্যাটেন্সি এবং এলোমেলো কর্মক্ষমতা DRAM এবং PMEM থেকে আলোকবর্ষ পিছিয়ে। অতএব, আধুনিক স্থাপত্যে, এগুলি ঠান্ডা ডেটা স্তরের জন্য সংরক্ষিত এবং ফ্ল্যাশ এবং/অথবা PMEM স্তরের নীচে স্থাপন করা হয়।
PMEM DRAM এবং NVMe এর মধ্যে অবস্থিতবিশুদ্ধ RAM এর তুলনায় কিছুটা ধীর, কিন্তু অনেক বড় মডিউল আকার, প্রতি GB-তে আরও প্রতিযোগিতামূলক মূল্য এবং ডেটা ধরে রাখার সুবিধা সহ। SSD এবং NVMe-এর তুলনায়, এটি কম ল্যাটেন্সি এবং বাইট-লেভেল অ্যাক্সেস প্রদান করে, যা এটিকে মেমোরির মধ্যে কাজের চাপের জন্য আদর্শ করে তোলে, তবে বেশি খরচে।
স্থায়ী মেমরি ব্যবহারের ক্ষেত্রে
PMEM থেকে সবচেয়ে বেশি উপকৃত অ্যাপ্লিকেশনগুলি এগুলো হলো গতি এবং ডেটা স্থায়িত্বের প্রয়োজনীয়তা, অথবা যেগুলোর জন্য আকাশছোঁয়া খরচ ছাড়াই বিপুল পরিমাণ মেমোরির প্রয়োজন।
ব্যবহারের কিছু সাধারণ উদাহরণ হল:
- ইন-মেমরি ডাটাবেস যেমন SAP HANA, Oracle In-Memory, REDIS অথবা MSSQL, PMEM-এর জন্য অপ্টিমাইজেশন সহ।
- বিগ ডেটা ওয়ার্কলোড (হ্যাডুপ, স্পার্ক, বিশাল বিশ্লেষণ) যেখানে স্টার্টআপের সময় মেমরিতে বিশাল ডেটাসেট প্রস্তুত রাখা গুরুত্বপূর্ণ।
- ভার্চুয়ালাইজেশন প্ল্যাটফর্মগুলি যারা কিছু গুরুত্বপূর্ণ VM-এর জন্য স্টোরেজ ল্যাটেন্সি কমাতে চান।
- মেশিন লার্নিং এবং IAযেখানে প্রশিক্ষণ সেটগুলিতে অতি দ্রুত অ্যাক্সেস প্রশিক্ষণের সময় উল্লেখযোগ্যভাবে হ্রাস করতে পারে।
- জিনোমিক সিকোয়েন্সিং এবং বৈজ্ঞানিক বিশ্লেষণ, যেখানে প্রক্রিয়াকরণ সময়ের প্রতি অত্যন্ত সংবেদনশীল বৃহৎ ডেটাসেটগুলি পরিচালনা করা হয়।
- তথ্য প্রক্রিয়াজাতকরণ IOT সেন্সর দ্বারা সৃষ্ট বিশাল ঘটনার দ্রুত প্রতিক্রিয়া জানাতে রিয়েল টাইমে।
- পেশাদার ভিডিও সম্পাদনা এবং রেন্ডারিংবৃহৎ ফাইল এবং জটিল প্রকল্পগুলিতে অ্যাক্সেস ত্বরান্বিত করে।
- গেম এবং গ্রাফিক্স ইঞ্জিন সার্ভার বা ক্লাউড গেমিং পরিবেশে, স্তর এবং সম্পদের লোডিং সময় কমাতে।
অবকাঠামো পর্যায়েএটি স্টোরেজ স্পেস ডাইরেক্টের মতো সিস্টেমে NVMe/SSD/HDD-এর উপরে একটি স্থায়ী ক্যাশে স্তর হিসেবেও ব্যবহৃত হয়, যা নিশ্চিত করে যে নতুন লেখা বা পঠিত ডেটা ফল্ট টলারেন্সকে ত্যাগ না করে যতটা সম্ভব CPU-এর কাছাকাছি থাকে।
অ্যাপ্লিকেশন এবং পাত্রে স্থায়ী স্টোরেজ
যখন আমরা স্থায়ী সঞ্চয়ের কথা বলি ওয়েব অ্যাপ্লিকেশন এবং কন্টেইনারের জগতে, কেবল PMEM-এর উপরই নয়, বরং এমন যেকোনো প্রক্রিয়ার উপরও জোর দেওয়া হয় যা ডেটা পুনঃসূচনা, স্থাপনা এবং আপডেটের ক্ষেত্রে টিকে থাকার বিষয়টি নিশ্চিত করে।
ক্লাসিক মনোলিথিক অ্যাপ্লিকেশনগুলিতেসার্ভার এবং স্টোরেজ সাধারণত একীভূত থাকে, তাই স্থানীয় ডিস্ক বা SAN অ্যাক্সেস করা তুলনামূলকভাবে সহজ। কিন্তু যখন আমরা একাধিক অঞ্চল জুড়ে বিতরণকৃত আর্কিটেকচার বা মাইক্রোসার্ভিসে স্থানান্তরিত করি, তখন জিনিসগুলি আরও জটিল হয়ে ওঠে: স্টোরেজ সিস্টেমটি বিশ্বব্যাপী উপলব্ধ হতে হবে, ধারাবাহিকতা বজায় রাখতে হবে এবং আংশিক ব্যর্থতা সহ্য করতে হবে।
পাত্রগুলির আগমনের সাথে সাথে (ডকার, কুবারনেটস, ইত্যাদি), সমস্যাটি আরও তীব্রতর হয়। কন্টেইনারগুলি, স্বভাবতই, ক্ষণস্থায়ী এবং রাষ্ট্রহীন। যদি একটি কন্টেইনার ধ্বংস হয়ে যায়, তবে এর অভ্যন্তরীণ ফাইল সিস্টেমের মধ্যে সংরক্ষিত সবকিছুই এর সাথে ধ্বংস হয়ে যায়।
এজন্যই ভলিউম এবং স্থায়ী ভলিউম ব্যবহার করা হয়।একটি স্ট্যান্ডার্ড ডকার ভলিউম একটি কন্টেইনার রিবুট করার পরেও টিকে থাকতে পারে, কিন্তু যদি কন্টেইনারটি মুছে ফেলা হয় এবং সংশ্লিষ্ট ভলিউমটি সরিয়ে ফেলা হয়, তাহলে ডেটা হারিয়ে যায়। স্থায়ী ভলিউম (অথবা `<volume>` ধরণের মাউন্ট) ভিন্ন। বাঁধাই করাএগুলি কন্টেইনারের ফাইল সিস্টেমের বাইরে, হোস্টে অথবা রিমোট স্টোরেজ ব্যাকএন্ডে অবস্থিত থাকে এবং অ্যাপ্লিকেশনটি পুনরায় তৈরি করা হলেও তা টিকে থাকে।
কুবারনেটসের মতো প্ল্যাটফর্মগুলি তারা ধারণাটি প্রবর্তন করে স্থায়ী ভলিউম (PV) y স্থায়ী ভলিউম দাবি (পিভিসি) ভৌত স্টোরেজ (এটি HDD, SSD, NAS, SAN, NFS, ক্লাউড সলিউশন এমনকি হোস্টে PMEM হতে পারে) বিমূর্ত করতে এবং অ্যাপ্লিকেশনগুলিকে "x গিগাবাইট স্থায়ী স্টোরেজ" অনুরোধ করার অনুমতি দিতে, নীচে কী আছে তা না জেনেই।
Kinsta বা অনুরূপ সরবরাহকারীরা তারা স্থায়ী কুবেরনেটস ভলিউম ব্যবহার করে
যাতে হোস্ট করা অ্যাপ্লিকেশনগুলি তাদের ডেটা ধরে রাখে নির্ভরযোগ্যভাবে। ডেভেলপারের দৃষ্টিকোণ থেকে, ভলিউমের আকার এবং ধরণ নির্ধারণ করা হয় এবং প্ল্যাটফর্মটি এটিকে সঠিক ভৌত স্টোরেজে ম্যাপ করার যত্ন নেয়।
এই প্রেক্ষাপটে, PMEM একটি অতি-দ্রুত ব্যাকএন্ড হিসেবে কাজ করতে পারে নির্দিষ্ট স্থায়ী ভলিউমের জন্য (যেমন, I/O-নিবিড় ডাটাবেসের জন্য), যখন বাকি ডেটা SSD বা HDD-তে সংরক্ষণ করা হয়, কর্মক্ষমতা এবং খরচের মধ্যে ভারসাম্য অর্জন করে।
স্থায়ী সঞ্চয়ের ধরণ এবং স্থাপত্য
পরলোক হার্ডওয়্যার জমাটবদ্ধস্থায়ী স্টোরেজ বিভিন্ন আর্কিটেকচারে সংগঠিত করা যেতে পারে, প্রতিটি নির্দিষ্ট ব্যবহারের ধরণ অনুসারে উপযুক্ত।
অবজেক্ট আর্কিটেকচার এটি ব্লক বা ফাইলের পরিবর্তে মেটাডেটা এবং একটি শনাক্তকারী বস্তু হিসাবে ডেটা সংরক্ষণ করে। এটি অসংগঠিত ডেটা (ছবি, ভিডিও, ডকুমেন্ট) এর জন্য আদর্শ এবং পাবলিক ক্লাউডে (S3, Azure Blob Storage, ইত্যাদি) ব্যাপকভাবে ব্যবহৃত হয়। এখানে মূল বিষয় হল অতি-নিম্ন ল্যাটেন্সির পরিবর্তে স্কেলেবিলিটি এবং স্থায়িত্ব।
ব্লক আর্কিটেকচার এটি স্টোরেজকে স্থির-আকারের অ্যাড্রেসেবল ব্লক হিসেবে উপস্থাপন করে। এটি ক্লাসিক ডিস্ক এবং LUN মডেল এবং আমরা যখন কথা বলি তখন এটি পছন্দের। এইচপিসি, ডাটাবেস, পেশাদার ভিডিও সম্পাদনা, অথবা গেমিং কারণ এটি কম ল্যাটেন্সি, উচ্চ কর্মক্ষমতা এবং সু-নিয়ন্ত্রিত সমান্তরাল I/O ক্রিয়াকলাপ প্রদান করে।
ফাইল আর্কিটেকচার এটি শেয়ার্ড বা স্থানীয় ফাইল সিস্টেমের উপর ভিত্তি করে তৈরি (EXT4, NTFS, NFS, SMB, ইত্যাদি)। এটি এমন অ্যাপ্লিকেশনগুলির জন্য সুবিধাজনক যাদের পাথ, অনুমতি এবং শ্রেণিবিন্যাস সহ ফাইলগুলি পরিচালনা করতে হয়, যেমন ওয়েব CMS, সহযোগিতা প্ল্যাটফর্ম, মাল্টিমিডিয়া কন্টেন্ট ম্যানেজমেন্ট সিস্টেম ইত্যাদি।
PMEM প্রাথমিকভাবে ব্লক এবং বাইট মেমরি মডেলের সাথে মানানসইতবে, এটি একটি ফাইল সিস্টেমের অধীনে অথবা এমনকি অবজেক্ট সলিউশনের জন্য একটি অতি-দ্রুত ব্যাকএন্ড হিসাবে সংহত করা যেতে পারে, যা মেটাডেটা বা হট ডেটা ক্যাশে হিসাবে কাজ করে।
স্থায়ী স্মৃতির সুবিধা এবং সীমাবদ্ধতা
PMEM এর প্রধান সুবিধা ব্যবসায়িক পরিবেশে সাধারণত যে বিষয়গুলি উল্লেখ করা হয় তা হল:
- অনেক উন্নত পারফরম্যান্স ঐতিহ্যবাহী স্টোরেজের তুলনায়, বিশেষ করে ছোট এলোমেলো পঠন/লেখার ক্ষেত্রে।
- বিলম্বিতা হ্রাস, মেমরি বাসে থাকা এবং বাইট দ্বারা অ্যাক্সেস করতে সক্ষম।
- কোন অস্থিরতা নেই: বিদ্যুৎ বিভ্রাট, ব্যর্থতা বা পুনঃসূচনা (স্থায়ী মোডে) হলে ডেটা টিকে থাকে।
- বৃহত্তর মেমরি স্কেলেবিলিটি DRAM-এর তুলনায় প্রতি GB কম খরচে।
- উন্নত TCO এমন পরিস্থিতিতে যেখানে DRAM আপগ্রেড করা অত্যন্ত ব্যয়বহুল হবে কিন্তু একটি NVMe SSD কাঙ্ক্ষিত ল্যাটেন্সি অফার করে না।
- উন্নত নিরাপত্তা বিকল্প মডিউলগুলিতে ডেটা এনক্রিপ্ট করতে সক্ষম হয়ে এবং "গরম" মেমরিতে আরও সুরক্ষা প্রদান করে।
তবুও, এর কিছু অসুবিধা এবং চ্যালেঞ্জও রয়েছে।:
- SSD এবং NVMe এর তুলনায় বেশি খরচঅতএব, সমস্ত স্টোরেজ PMEM দিয়ে প্রতিস্থাপন করার কোন মানে হয় না।
- সীমিত সামঞ্জস্য নির্দিষ্ট হার্ডওয়্যার, অপারেটিং সিস্টেম বা হাইপারভাইজার সহ, বিশেষ করে পুরোনো পরিবেশে।
- হ্রাসপ্রাপ্ত ক্ষমতা এবং পণ্য সরবরাহবিশেষ করে ইন্টেল অপটেনের মতো লাইন বন্ধ হয়ে যাওয়ার পর।
- দত্তক গ্রহণের জটিলতাএর থেকে সর্বাধিক সুবিধা পেতে, আপনাকে অ্যাপ্লিকেশনগুলিকে অভিযোজিত করতে হবে, ফাইল সিস্টেমগুলি সামঞ্জস্য করতে হবে এবং একটি স্পষ্ট অধ্যবসায় কৌশল থাকতে হবে।
বাস্তবতা হলো, কৌশলগতভাবে ব্যবহার করলে স্থায়ী স্মৃতিশক্তি আরও অর্থবহ হয়।: একটি অতি-দ্রুত ক্যাশে হিসেবে, DRAM এবং NVMe-এর মধ্যে একটি মধ্যবর্তী ক্ষমতা স্তর হিসেবে, অথবা ডাটাবেস এবং ইন-মেমরি ওয়ার্কলোডের জন্য নিবেদিতপ্রাণ সহায়তা হিসেবে যেখানে গতি এবং অধ্যবসায় খরচের ক্ষতিপূরণ দেয়।
যদিও ইন্টেল অপটেনের মতো আইকনিক পণ্যগুলি বন্ধ করে দেওয়া হয়েছে,PMEM যে চাহিদাগুলি পূরণ করেছে তা এখনও রয়ে গেছে: আরও মেমোরি, দ্রুত, DRAM এর চেয়ে সস্তা এবং স্থায়িত্ব সহ। আশা করা হচ্ছে যে নতুন প্রজন্মের স্টোরেজ-ক্লাস মেমোরি, মেমোরি লেয়ারিং প্রযুক্তি এবং হাইব্রিড সমাধানগুলি ঐতিহ্যবাহী RAM এবং ভর স্টোরেজের মধ্যে এই স্থানটি অন্বেষণ করতে থাকবে।
স্থায়ী মেমোরি স্টোরেজ (PMEM) এবং ডেটা স্থায়িত্বের বৃহত্তর ধারণা আধুনিক অবকাঠামোগত ধাঁধার মূল অংশ হয়ে উঠেছে এগুলি: দ্রুত, স্কেলেবল এবং স্থিতিস্থাপক সিস্টেম তৈরির সুযোগ করে দেয়, তবে শর্ত থাকে যে তাদের মোড, সীমাবদ্ধতা এবং উপযুক্ত ব্যবহারের ক্ষেত্রে ভালভাবে বোঝা যায় এবং এগুলিকে HDD, SSD, NVMe এবং বিতরণকৃত স্টোরেজের সাথে সুষম উপায়ে একত্রিত করা হয়।
সাধারণভাবে বাইট এবং প্রযুক্তির বিশ্ব সম্পর্কে উত্সাহী লেখক। আমি লেখার মাধ্যমে আমার জ্ঞান ভাগ করে নিতে পছন্দ করি, এবং আমি এই ব্লগে এটিই করব, আপনাকে গ্যাজেট, সফ্টওয়্যার, হার্ডওয়্যার, প্রযুক্তিগত প্রবণতা এবং আরও অনেক কিছু সম্পর্কে সবচেয়ে আকর্ষণীয় জিনিস দেখাব৷ আমার লক্ষ্য হল আপনাকে একটি সহজ এবং বিনোদনমূলক উপায়ে ডিজিটাল বিশ্বে নেভিগেট করতে সাহায্য করা।