KVM, ভার্চুয়াল মেশিন, কন্টেইনার এবং ডেডিকেটেড হার্ডওয়্যার বিভিন্ন পরিচালনার সীমানা বর্ণনা করে। আপনার প্রকল্পের প্রয়োজনীয় সীমানা বেছে নিন, অফারে প্রকাশিত বৈশিষ্ট্যগুলো যাচাই করুন এবং সেই পরিবেশের মধ্যে সফটওয়্যার রক্ষণাবেক্ষণ করুন।
একটি ভার্চুয়াল মেশিন একটি গেস্ট পরিবেশ
একটি ভার্চুয়াল মেশিন একটি অপারেটিং সিস্টেমকে প্রসেসর, ডিস্ক এবং নেটওয়ার্ক ইন্টারফেসের মতো ভার্চুয়ালাইজড হার্ডওয়্যার উপস্থাপন করে। ভৌত হোস্ট সেই গেস্টগুলোকে সম্ভব করে তোলা যন্ত্রাংশ চালায়। একটি VPS হলো একটি ভার্চুয়াল সার্ভারকে কেন্দ্র করে তৈরি একটি হোস্টিং পণ্য, যেখানে নির্দিষ্ট সম্পদ বরাদ্দ এবং একটি অপারেটিং পরিবেশ রয়েছে যা গ্রাহক ব্যবহার করতে পারেন। প্রতিটি ভার্চুয়াল CPU-এর পেছনে একটি ভৌত মেশিন কল্পনা না করে বরাদ্দটিকে অফারের অংশ হিসেবে পড়ুন।
একটি ডেডিকেটেড সার্ভার প্রকল্পকে একটি ভৌত মেশিন সীমানা দেয়। এটি একটি অপারেটিং সিস্টেম চালাতে পারে বা হার্ডওয়্যার ও ডিপ্লয়মেন্ট সেই ডিজাইন সমর্থন করলে নিজের ভার্চুয়াল মেশিন হোস্ট করতে পারে। এটি সম্পদ মালিকানা ও প্রশাসন পরিবর্তন করে, কিন্তু সফটওয়্যার দুর্বলতা, আপডেটের কাজ বা ব্যাকআপের প্রয়োজনীয়তা দূর করে না। প্রকৃত আইসোলেশন বা ক্ষমতার প্রয়োজন থেকে সীমানা বেছে নিন।
KVM একটি ভার্চুয়ালাইজেশন প্রযুক্তি চিহ্নিত করে
KVM Linux কার্নেলে ভার্চুয়ালাইজেশন সমর্থন প্রদান করে। QEMU একটি মেশিন মডেল সরবরাহ করে এবং ভার্চুয়ালাইজেশন অ্যাক্সিলারেটর হিসেবে KVM ব্যবহার করতে পারে, অন্যদিকে libvirt-এর মতো ম্যানেজমেন্ট সফটওয়্যার গেস্ট কনফিগারেশন ও লাইফসাইকেল সংগঠিত করতে পারে। এই উপাদানগুলো ব্যাখ্যা করে কীভাবে একটি পরিবেশ তৈরি করা যায়; KVM অক্ষরগুলো CPU শিডিউলিং, স্টোরেজ পারফরম্যান্স বা সেবা প্রাপ্যতা নির্দিষ্ট করে না।
ভার্চুয়ালাইজেশন ডকুমেন্টেশন কখনও কখনও হোস্ট প্ল্যাটফর্মের সাথে সম্পর্ক অনুসারে Type 1 এবং Type 2 হাইপারভাইজারকে আলাদা করে। হোস্টিং সিদ্ধান্তের জন্য, একটি লেবেলের চেয়ে গেস্ট সীমানা, রক্ষণাবেক্ষণের দায়িত্ব এবং প্রকাশিত হার্ডওয়্যার জানা বেশি উপযোগী। জিজ্ঞাসা করুন প্রয়োজনীয় গেস্ট অপারেটিং সিস্টেম ও ড্রাইভার সমর্থিত কি না। একটি সফটওয়্যার প্রকল্পের বর্ণিত বৈশিষ্ট্যগুলো প্রতিটি প্রদানকারীর পণ্যে স্বয়ংক্রিয়ভাবে সক্রিয় থাকে না।
গেস্ট নিয়ন্ত্রণকে হোস্ট নিয়ন্ত্রণের সাথে গুলিয়ে ফেলবেন না
একটি গেস্টের ভিতরে রুট বা অ্যাডমিনিস্ট্রেটর অ্যাক্সেস আপনাকে সেই গেস্ট পরিচালনা করতে দেয়। এটি আপনাকে ভৌত হাইপারভাইজার, অন্য টেন্যান্ট বা প্রতিটি সম্ভাব্য হোস্ট বৈশিষ্ট্যে অ্যাক্সেস দেয় না। নেস্টেড ভার্চুয়ালাইজেশন, ডিভাইস পাসথ্রু এবং বিশেষায়িত নেটওয়ার্ক সেটিংসের জন্য স্পষ্ট সমর্থন প্রয়োজন। আপনার ল্যাপটপে উপলব্ধ একটি সক্ষমতা হোস্টিং পরিবেশ একইভাবে প্রকাশ করবে এই অনুমানে একটি VPS নির্বাচন করবেন না।
প্রকৃত প্ল্যানের CPU, মেমরি, স্টোরেজ, নেটওয়ার্ক এবং লাইসেন্স তুলনা করুন। ডেলিভারির পরে প্রতিনিধিত্বমূলক কাজ দিয়ে আপনার অ্যাপ্লিকেশনের লেটেন্সি ও সম্পদ চাপ পর্যবেক্ষণ করুন। একটি ভার্চুয়ালাইজেশন প্রযুক্তি প্রদানকারীর নীতি অনুসারে অন্তর্নিহিত হার্ডওয়্যার সম্পদ ভাগ করে নেওয়ার সময়ও একটি উপযোগী আইসোলেশন সীমানা তৈরি করতে পারে। গেস্ট লেবেল বা ডেডিকেটেড লেবেল কোনোটিই পরিমাপ এবং সম্পূর্ণ পরিচালনাগত স্পেসিফিকেশনের বিকল্প নয়।
| সীমানা | প্রকল্প যা পরিচালনা করে | যাচাই করার একটি সক্ষমতা |
|---|---|---|
| ভার্চুয়াল মেশিন | গেস্ট OS এবং এর সেবাগুলো | সমর্থিত OS, ড্রাইভার এবং প্রকাশিত বৈশিষ্ট্য |
| কন্টেইনার | প্রক্রিয়া এবং ইমেজ কনফিগারেশন | কার্নেল বৈশিষ্ট্য, সীমা এবং মাউন্ট পরিধি |
| ডেডিকেটেড সার্ভার | নির্বাচিত ভৌত মেশিন পরিবেশ | হার্ডওয়্যার এবং ভার্চুয়ালাইজেশন প্রয়োজনীয়তা |
কন্টেইনার একটি পরিবেশের ভিতরে প্রক্রিয়াগুলো সংগঠিত করে
একটি কন্টেইনার সাধারণত তার হোস্ট কার্নেল ভাগ করে নেয় যখন প্রক্রিয়া ও তাদের সম্পদ গোষ্ঠীবদ্ধ করে। একটি ভার্চুয়াল মেশিন একটি গেস্ট কার্নেল চালায়। অপারেটিং সিস্টেম ও রানটাইম উদ্দিষ্ট কনফিগারেশন সমর্থন করলে আপনি একটি VPS-এর ভিতরে কন্টেইনার চালাতে পারেন। এই সমন্বয় গেস্টের নিরাপত্তা রক্ষণাবেক্ষণ বা পুনরুদ্ধার পরিকল্পনা প্রতিস্থাপন না করেই নির্ভরতাগুলো প্যাকেজ করা সহজ করতে পারে।
Docker-এর সম্পদ নিয়ন্ত্রণের জন্য সচেতন সেটিংস প্রয়োজন: ডিফল্টভাবে, রানটাইম প্রতিটি কন্টেইনারে CPU এবং মেমরি সীমা স্থাপন করে না। সম্পদ ব্যবহার সীমাবদ্ধ করুন এবং অপ্রয়োজনীয় বিশেষাধিকার বা হোস্ট মাউন্ট এড়িয়ে চলুন। যেখানে সম্ভব সেখানে ভিন্ন বিশ্বাস প্রয়োজনীয়তাসহ কাজের চাপ আলাদা করুন। হোস্ট ও ইমেজ রক্ষণাবেক্ষণ করুন। একটি কন্টেইনার ইমেজকে এমন সফটওয়্যার হিসেবে বিবেচনা করুন যা আপনাকে যাচাই করতে হবে, শুরু করা সহজ বলে স্বয়ংক্রিয় নিরাপত্তা সিদ্ধান্ত হিসেবে নয়।
শেল একটি ইন্টারপ্রেটার, সার্ভার নিজে নয়
একটি টার্মিনাল একটি ইন্টারঅ্যাকশন পৃষ্ঠ সরবরাহ করে; একটি শেল কমান্ড ব্যাখ্যা করে এবং প্রোগ্রাম শুরু করে। Linux-এ, Bash একটি সাধারণ শেল, অন্যদিকে অন্যান্য শেল ভিন্ন সিনট্যাক্স ও ইন্টারঅ্যাকটিভ বৈশিষ্ট্য দেয়। একটি স্ক্রিপ্টকে অবশ্যই তার প্রত্যাশিত ইন্টারপ্রেটারকে লক্ষ্য করতে হবে। লগইন শেল পরিবর্তন করলে প্রতিটি অ্যাপ্লিকেশনের ইন্টারপ্রেটার পরিবর্তন হয় না বা অন্য শেলের জন্য লেখা স্ক্রিপ্ট সামঞ্জস্যপূর্ণ হয় না।
একটি প্রোগ্রাম তার আর্গুমেন্ট পাওয়ার আগে শেল ইনপুট সম্প্রসারণ, রিডাইরেকশন এবং কমান্ড প্রতিস্থাপনের মধ্য দিয়ে যেতে পারে। ফাইলনাম বা ব্যবহারকারী ডেটা থেকে রক্ষণাবেক্ষণ কমান্ড তৈরির আগে সেই প্রক্রিয়াকরণ বুঝুন। অবিশ্বস্ত ইনপুটকে কার্যকরযোগ্য কমান্ড টেক্সটের বাইরে রাখুন, আর্গুমেন্ট সঠিকভাবে উদ্ধৃত করুন এবং স্বয়ংক্রিয় কাজের জন্য একটি প্রোগ্রামের কাঠামোবদ্ধ ইন্টারফেস পছন্দ করুন। ইতিহাস, লগ এবং প্রক্রিয়া আর্গুমেন্ট সংবেদনশীল মান ধরে রাখতে পারে, তাই অ্যাপ্লিকেশনের উপযুক্ত ব্যক্তিগত ক্রেডেনশিয়াল ব্যবস্থা ব্যবহার করুন।
আপনি যে সীমানা বেছে নিয়েছেন তা পরিচালনা করুন
ডেলিভারির পরে, গেস্ট OS, অ্যাক্সেস রুট এবং পুনরুদ্ধার ব্যবস্থা চিহ্নিত করুন। আপডেট প্রয়োগ করুন, একটি সীমাবদ্ধ প্রশাসন অ্যাকাউন্ট প্রতিষ্ঠা করুন এবং প্রকল্পের প্রয়োজনীয় সেবাগুলো কেবল প্রকাশ করুন। গুরুত্বপূর্ণ ডেটা স্থানান্তরের আগে একটি ছোট ডিপ্লয়মেন্ট পরীক্ষা করুন। এটি পুনর্নির্মাণের জন্য প্রয়োজনীয় রানটাইম, ইমেজ এবং কনফিগারেশন রেকর্ড করুন; সীমানা আপনাকে বলে না অ্যাপ্লিকেশন অবস্থা পুনরুদ্ধারযোগ্য কি না।
কাজের চাপ ও অপারেটিং পরিবেশ অনুসারে Vector, DeskLink বা একটি Metal রেঞ্জ সংক্ষিপ্ত তালিকাভুক্ত করতে SwissOctet তুলনা ব্যবহার করুন। অর্ডার প্রস্তুত করার আগে বিশেষায়িত সক্ষমতা নিশ্চিত করুন। রানবুকে অপারেটিং-সিস্টেমের কাজ, অ্যাপ্লিকেশন কাজ এবং প্রদানকারীর কাজ আলাদা রাখুন। একটি স্পষ্ট সীমানা উপযোগী কারণ এটি আপনাকে বলে আপনি কী কনফিগার করতে পারেন এবং কী সম্পর্কে জিজ্ঞাসা করতে হবে, একইসাথে মাইগ্রেশন ও পুনরুদ্ধারের জন্য একটি ব্যবহারিক পথ সংরক্ষণ করে।
আপনার ব্যবহারিক চেকলিস্ট।
- গেস্ট অ্যাক্সেসকে হোস্ট অ্যাক্সেস থেকে আলাদা করুন।
- বিশেষায়িত হার্ডওয়্যার এবং ভার্চুয়ালাইজেশন প্রয়োজনীয়তা যাচাই করুন।
- একটি হাইপারভাইজার লেবেল নয়, সম্পূর্ণ কনফিগারেশন পরিমাপ করুন।
- কন্টেইনার সীমা এবং অনুমতি কনফিগার করুন।
- উদ্দিষ্ট শেল ব্যবহার করুন এবং কমান্ড ইনপুট সুরক্ষিত করুন।
যে বিবরণগুলো গুরুত্বপূর্ণ।
KVM কি বোঝায় যে আমি ডেডিকেটেড ভৌত CPU কোর পাই?+
না। KVM ভার্চুয়ালাইজেশন প্রযুক্তি চিহ্নিত করে। পণ্যের CPU বরাদ্দ এবং সম্পদ নীতি আলাদাভাবে পড়ুন।
কন্টেইনার কি গেস্ট রক্ষণাবেক্ষণ প্রতিস্থাপন করতে পারে?+
না। হোস্ট পরিবেশ, কন্টেইনার রানটাইম এবং ইমেজ সবগুলোরই রক্ষণাবেক্ষণ, উপযুক্ত অনুমতি এবং পুনরুদ্ধার পরিকল্পনা প্রয়োজন।
একটি টার্মিনাল এবং একটি শেল কি একই জিনিস?+
না। একটি টার্মিনাল একটি ইন্টারফেস সরবরাহ করে। একটি শেল সেই ইন্টারফেসের মধ্যে কমান্ড ইনপুট ব্যাখ্যা করে এবং প্রোগ্রাম চালু করে।
সূত্রে যান।
এই রেফারেন্সগুলি এই গাইডের প্রযুক্তিগত ধারণাগুলি সমর্থন করে। একটি উৎপাদন সিস্টেম পরিবর্তন করার আগে বর্তমান ডকুমেন্টেশন অনুসরণ করুন।
- KVM প্রকল্প: কার্নেল ভার্চুয়াল মেশিন www.linux-kvm.org
- QEMU: সিস্টেম এমুলেশন পরিচিতি www.qemu.org
- Docker: রিসোর্স সীমাবদ্ধতা docs.docker.com
- GNU Bash: শেল সম্প্রসারণ www.gnu.org
SwissOctet দ্বারা সম্পাদকীয় নির্দেশনা। উদাহরণগুলি উদাহরণমূলক। সেবা স্পেসিফিকেশন, উপলব্ধ অপশন এবং চুক্তিভিত্তিক শর্তগুলি আলাদাভাবে যাচাই করতে হবে।