GCP-এ একটি দীপ্তি সমান্তরাল ফাইল সিস্টেম স্থাপন করুন

১. সংক্ষিপ্ত বিবরণ

গুগল ক্লাউড প্ল্যাটফর্মে লাস্টার প্যারালাল ফাইল সিস্টেম ক্লাস্টার চালানোর জন্য গুগল কোডল্যাবে আপনাকে স্বাগতম!

d51beef5f729cbe9.png

হাই পারফরম্যান্স কম্পিউটিং অনুশীলনের মূল ভিত্তি হলো ডেটা, এবং অত্যন্ত উচ্চ গতিতে ও কম ল্যাটেন্সিতে বিপুল পরিমাণ ডেটা অ্যাক্সেস করা এইচপিসি ওয়ার্কলোড চালানোর ক্ষেত্রে বরাবরই একটি প্রধান চ্যালেঞ্জ হয়ে দাঁড়িয়েছে। ক্লাউডেও উচ্চ ক্ষমতাসম্পন্ন স্টোরেজের এই প্রয়োজনীয়তার কোনো পরিবর্তন হয়নি, বরং দ্রুত ও সহজে বিশাল পরিমাণ স্টোরেজ ব্যবহার করার ক্ষমতাই এখন সবচেয়ে গুরুত্বপূর্ণ হয়ে উঠেছে।

এইচপিসি কেন্দ্রগুলো দীর্ঘদিন ধরে লাস্টার প্যারালাল ফাইল সিস্টেমের মতো প্রযুক্তি ব্যবহার করে অন-প্রেমিসে এই চাহিদা পূরণ করে আসছে। লাস্টার বর্তমানে সবচেয়ে জনপ্রিয় ওপেন সোর্স হাই পারফরম্যান্স স্টোরেজ সলিউশনগুলোর মধ্যে অন্যতম, এবং জুন ২০০৫ থেকে এটি বিশ্বের শীর্ষ দশটির মধ্যে অন্তত অর্ধেক এবং শীর্ষ ১০০টি দ্রুততম সুপারকম্পিউটারের মধ্যে ৬০টিরও বেশিতে ধারাবাহিকভাবে ব্যবহৃত হয়ে আসছে। লাস্টারের ধারণক্ষমতা কয়েকশ পিবি পর্যন্ত বৃদ্ধি পাওয়ার এবং এইচপিসি কাজের জন্য সম্ভাব্য সর্বোচ্চ পারফরম্যান্স প্রদানের ক্ষমতা রয়েছে, যেখানে সিস্টেমগুলো একটি একক নেমস্পেসে টিবি/এস থ্রুপুট সরবরাহ করে।

স্টোরেজের চাহিদা মেটাতে গুগল ক্লাউড দুটি পন্থা অবলম্বন করেছে। প্রথমত, GCP, DDN-এর সাথে অংশীদারিত্বের মাধ্যমে তাদের সমর্থিত, এন্টারপ্রাইজ-শ্রেণির DDN EXAScaler Lustre সফটওয়্যারটি GCP মার্কেটপ্লেসে নিয়ে এসেছে। দ্বিতীয়ত, গুগল ক্লাউডের আমাদের প্রকৌশলীরা গুগল ক্লাউড ডিপ্লয়মেন্ট ম্যানেজার ব্যবহার করে গুগল কম্পিউট ইঞ্জিনে একটি লাস্টার স্টোরেজ ক্লাস্টার সহজে কনফিগার ও স্থাপন করার জন্য এক সেট স্ক্রিপ্ট তৈরি এবং ওপেন-সোর্স করেছেন

গুগল ক্লাউড প্ল্যাটফর্মে থাকা লাস্টার (Lustre) যে ইনফ্রাস্ট্রাকচারে চলছে, তার সর্বোচ্চ পারফরম্যান্স প্রদানে সমানভাবে সক্ষম। GCP-তে এর পারফরম্যান্স এতটাই ভালো যে, ২০১৯ সালে আমাদের পার্টনার DDN-এর সাথে এটি IO-500 স্টোরেজ সিস্টেম বেঞ্চমার্কে ৮ম স্থান অর্জন করে , যা IO-500-এর সর্বোচ্চ র‍্যাঙ্কিংপ্রাপ্ত ক্লাউড-ভিত্তিক ফাইল সিস্টেম। আজ আমরা আপনাকে লাস্টারের জন্য ওপেন সোর্স ডেপ্লয়মেন্ট ম্যানেজার স্ক্রিপ্টগুলো ডেপ্লয় করার পদ্ধতি দেখাবো। আপনি যদি আপনার লাস্টার ক্লাস্টারের জন্য লাস্টার-বিশেষজ্ঞের সহায়তাসহ একটি এন্টারপ্রাইজ-স্তরের, সুরক্ষিত লাস্টার অভিজ্ঞতা পেতে আগ্রহী হন, এবং সেইসাথে ম্যানেজমেন্ট ও মনিটরিং GUI বা লাস্টার টিউনিং-এর মতো ফিচারগুলো ব্যবহার করতে চান, তাহলে আমরা DDN EXAScaler মার্কেটপ্লেসের অফারটি খতিয়ে দেখার পরামর্শ দিই।

আপনি যা শিখবেন

  • GCP ডেপ্লয়মেন্ট ম্যানেজার সার্ভিস কীভাবে ব্যবহার করবেন
  • GCP-তে কীভাবে একটি Lustre ফাইল সিস্টেম কনফিগার এবং ডেপ্লয় করতে হয়।
  • লাস্টার ফাইল সিস্টেমে স্ট্রাইপিং কীভাবে কনফিগার করবেন এবং সাধারণ I/O কীভাবে পরীক্ষা করবেন।

পূর্বশর্ত

  • গুগল ক্লাউড প্ল্যাটফর্ম অ্যাকাউন্ট এবং বিলিং সহ একটি প্রজেক্ট
  • লিনাক্স সম্পর্কে প্রাথমিক অভিজ্ঞতা

২. সেটআপ

স্ব-গতিতে পরিবেশ সেটআপ

একটি প্রকল্প তৈরি করুন

আপনার যদি আগে থেকে কোনো গুগল অ্যাকাউন্ট (জিমেইল বা জি স্যুট) না থাকে, তবে আপনাকে অবশ্যই একটি তৈরি করতে হবে। গুগল ক্লাউড প্ল্যাটফর্ম কনসোলে ( console.cloud.google.com ) সাইন-ইন করুন এবং ম্যানেজ রিসোর্সেস পৃষ্ঠাটি খুলুন:

359c06e07e6d699f.png

প্রজেক্ট তৈরি করুন-এ ক্লিক করুন।

25c23d651abb837b.png

একটি প্রজেক্টের নাম লিখুন । প্রজেক্ট আইডিটি মনে রাখবেন (উপরের স্ক্রিনশটে লাল রঙে চিহ্নিত)। সমস্ত গুগল ক্লাউড প্রজেক্টের মধ্যে প্রজেক্ট আইডিটি অবশ্যই একটি অনন্য নাম হতে হবে। যদি আপনার প্রজেক্টের নাম অনন্য না হয়, গুগল ক্লাউড প্রজেক্টের নামের উপর ভিত্তি করে একটি র‍্যান্ডম প্রজেক্ট আইডি তৈরি করবে।

এরপরে, গুগল ক্লাউড রিসোর্স ব্যবহার করার জন্য আপনাকে ডেভেলপার কনসোলে বিলিং চালু করতে হবে।

এই কোডল্যাবটি চালাতে আপনার কয়েক ডলারের বেশি খরচ হওয়ার কথা নয়, কিন্তু আপনি যদি আরও রিসোর্স ব্যবহার করার সিদ্ধান্ত নেন অথবা সেগুলোকে চালু রাখেন, তাহলে খরচ আরও বেশি হতে পারে (এই ডকুমেন্টের শেষে 'উপসংহার' অংশটি দেখুন)। গুগল ক্লাউড প্ল্যাটফর্মের প্রাইসিং ক্যালকুলেটরটি এখানে পাওয়া যাবে।

গুগল ক্লাউড প্ল্যাটফর্মের নতুন ব্যবহারকারীরা ৩০০ ডলারের একটি বিনামূল্যে ট্রায়ালের জন্য যোগ্য।

গুগল ক্লাউড শেল

যদিও গুগল ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালনা করা যায়, এই কোডল্যাবে আমরা গুগল ক্লাউড শেল ব্যবহার করব, যা ক্লাউডে চালিত একটি কমান্ড লাইন পরিবেশ।

গুগল ক্লাউড শেল চালু করুন

GCP কনসোল থেকে উপরের ডানদিকের টুলবারে থাকা ক্লাউড শেল আইকনে ক্লিক করুন:

dbad104cef962719.png

তারপর স্টার্ট ক্লাউড শেল-এ ক্লিক করুন:

4e50db320508ac88.png

পরিবেশের জন্য প্রয়োজনীয় ব্যবস্থা গ্রহণ এবং সংযোগ স্থাপন করতে মাত্র কয়েক মুহূর্ত সময় লাগা উচিত:

20b0aa80492144d.png

এই ভার্চুয়াল মেশিনটিতে আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুলস লোড করা আছে। এটি একটি স্থায়ী ৫ জিবি হোম ডিরেক্টরি প্রদান করে এবং গুগল ক্লাউডে চলে, যা নেটওয়ার্ক পারফরম্যান্স ব্যাপকভাবে উন্নত করে ও অথেনটিকেশন সহজ করে তোলে। এই ল্যাবে আপনার প্রায় সমস্ত কাজই শুধুমাত্র একটি ওয়েব ব্রাউজার বা একটি গুগল ক্রোমবুক দিয়ে করা সম্ভব।

ক্লাউড শেলে সংযুক্ত হওয়ার পর, আপনি দেখতে পাবেন যে আপনাকে ইতিমধ্যেই প্রমাণীকৃত করা হয়েছে এবং প্রজেক্টটি আপনার PROJECT_ID- তে সেট করা আছে।

$ gcloud auth list

কমান্ড আউটপুট:

Credentialed accounts:
 - <myaccount>@<mydomain>.com (active)
$ gcloud config list project

কমান্ড আউটপুট:

[core]
project = <PROJECT_ID>

প্রজেক্ট আইডি সঠিকভাবে সেট করা না থাকলে, আপনি এই কমান্ডটি দিয়ে তা সেট করতে পারেন:

$ gcloud config set project <PROJECT_ID>

কমান্ড আউটপুট:

Updated property [core/project].

৩. লাস্টার ডেপ্লয়মেন্ট কনফিগারেশন প্রস্তুত ও পর্যালোচনা করুন

লাস্টার ডিপ্লয়মেন্ট ম্যানেজার স্ক্রিপ্টগুলি ডাউনলোড করুন

ক্লাউড শেল সেশনে, Lustre for Google Cloud Platform ডেপ্লয়মেন্ট-ম্যানেজার ফাইলগুলো ধারণকারী গিট রিপোজিটরিটি ক্লোন (ডাউনলোড) করতে নিম্নলিখিত কমান্ডটি চালান:

git clone https://github.com/GoogleCloudPlatform/deploymentmanager-samples.git

নিম্নলিখিত কমান্ডটি চালিয়ে Lustre ডেপ্লয়মেন্ট কনফিগারেশন ডিরেক্টরিতে যান:

cd deploymentmanager-samples/community/lustre/

লাস্টার ডিপ্লয়মেন্ট YAML কনফিগার করুন

ডিপ্লয়মেন্ট ম্যানেজার ডিপ্লয়মেন্ট কনফিগারেশন প্রদানের জন্য একটি YAML ফাইল ব্যবহার করে। এই YAML ফাইলটিতে ডিপ্লয়মেন্টের কনফিগারেশনের বিস্তারিত বিবরণ থাকে, যেমন কোন লাস্টার (Lustre) সংস্করণ ডিপ্লয় করতে হবে এবং কোন ধরনের মেশিন ইনস্ট্যান্স টাইপ ডিপ্লয় করতে হবে। ফাইলটি ডিফল্টরূপে কোনো কোটা বৃদ্ধি ছাড়াই একটি নতুন প্রজেক্টে ডিপ্লয় করার জন্য কনফিগার করা থাকে, তবে এই কোডল্যাবের জন্য আপনি আপনার ইচ্ছামতো মেশিনের ধরন বা ক্যাপাসিটি পরিবর্তন করতে পারেন। এই কোডল্যাবটি এই ডিফল্টগুলো ব্যবহার করার জন্য লেখা হয়েছে, তাই আপনি যদি কোনো পরিবর্তন করেন, তবে ত্রুটি এড়াতে আপনাকে অবশ্যই এই কোডল্যাব জুড়ে সেই পরিবর্তনগুলো প্রয়োগ করতে হবে। প্রোডাকশনের ক্ষেত্রে, আমরা MDS নোডের জন্য কমপক্ষে একটি ৩২ vCPU ইনস্ট্যান্স এবং স্টোরেজ ক্যাপাসিটি ও ধরনের উপর নির্ভর করে OSS নোডগুলোর জন্য কমপক্ষে ৮ বা ১৬ vCPU ইনস্ট্যান্স ব্যবহারের পরামর্শ দিই।

ক্লাউড শেল সেশনে YAML ফাইলটি পর্যালোচনা বা সম্পাদনা করতে, ডেপ্লয়মেন্ট কনফিগারেশন YAML ফাইল Lustre-cluster.yaml খুলুন । ফাইলটির বিষয়বস্তু দেখার জন্য আপনি আপনার পছন্দের কমান্ড লাইন এডিটর (vi, nano, emacs, ইত্যাদি) অথবা ক্লাউড কনসোল কোড এডিটর ব্যবহার করতে পারেন।

11efd5af658f1842.png

ফাইলটির বিষয়বস্তু দেখতে এইরকম হবে:

# [START cluster_yaml]
imports:
- path: lustre.jinja

resources:
- name: lustre
  type: lustre.jinja
  properties:
    ## Cluster Configuration
    cluster_name            : lustre
    zone                    : us-central1-f
    cidr                    : 10.20.0.0/16
    external_ips            : True
    ### Use these fields to deploy Lustre in an existing VPC, Subnet, and/or Shared VPC
    #vpc_net                 : < VPC Network Name >
    #vpc_subnet              : < VPC Subnet Name >
    #shared_vpc_host_proj    : < Shared VPC Host Project name >

    ## Filesystem Configuration
    fs_name                 : lustre
    ### Review https://downloads.whamcloud.com/public/ to determine version naming
    lustre_version          : latest-release
    e2fs_version            : latest

    ## Lustre MDS/MGS Node Configuration
    #mds_node_count          : 1
    mds_ip_address          : 10.20.0.2
    mds_machine_type        : n1-standard-8
    ### MDS/MGS Boot disk
    mds_boot_disk_type      : pd-standard
    mds_boot_disk_size_gb   : 10
    ### Lustre MetaData Target disk
    mdt_disk_type           : pd-ssd
    mdt_disk_size_gb        : 1000

    ## Lustre OSS Configuration
    oss_node_count          : 4
    oss_ip_range_start      : 10.20.0.5
    oss_machine_type        : n1-standard-4
    ### OSS Boot disk
    oss_boot_disk_type      : pd-standard
    oss_boot_disk_size_gb   : 10
    ### Lustre Object Storage Target disk
    ost_disk_type           : pd-standard
    ost_disk_size_gb        : 5000
#  [END cluster_yaml]

এই YAML ফাইলটিতে বেশ কয়েকটি ফিল্ড রয়েছে। নিচে তারকাচিহ্ন (*) দেওয়া ফিল্ডগুলো পূরণ করা আবশ্যক। এই ফিল্ডগুলো হলো:

ক্লাস্টার কনফিগারেশন

  • cluster_name* - লাস্টার ক্লাস্টারের নাম, যা সমস্ত ডেপ্লয় করা রিসোর্সের শুরুতে যুক্ত হয়।
  • জোন* - যে জোনে ক্লাস্টারটি স্থাপন করা হবে
  • cidr* - CIDR ফরম্যাটে আইপি রেঞ্জ
  • external_ips* - সত্য/মিথ্যা, লাস্টার নোডগুলির বাহ্যিক আইপি ঠিকানা থাকে। যদি মিথ্যা হয়, তাহলে একটি ক্লাউড NAT একটি NAT গেটওয়ে হিসাবে সেট আপ করা হয়।
  • vpc_net - একটি বিদ্যমান VPC-তে Lustre ক্লাস্টার স্থাপন করার জন্য এই ফিল্ড এবং vpc_subnet ফিল্ডটি সংজ্ঞায়িত করুন।
  • vpc_subnet - লাস্টার ক্লাস্টার স্থাপন করার জন্য বিদ্যমান VPC সাবনেট
  • shared_vpc_host_proj - ক্লাস্টারটিকে একটি শেয়ার্ড ভিপিসিতে স্থাপন করার জন্য এই ফিল্ডটির পাশাপাশি vpc_net এবং vpc_subnet ফিল্ডগুলোও সংজ্ঞায়িত করুন।

ফাইল সিস্টেম কনফিগারেশন

  • fs_name - লাস্টার ফাইল সিস্টেমের নাম
  • lustre_version - ডেপ্লয় করার জন্য Lustre-এর ভার্সন, https://downloads.whamcloud.com/public/lustre/ থেকে সর্বশেষ ব্রাঞ্চ ডেপ্লয় করতে "latest-release" ব্যবহার করুন অথবা অন্য যেকোনো ভার্সন ডেপ্লয় করতে lustre-XXX ব্যবহার করুন।
  • e2fs_version - ডেপ্লয় করার জন্য E2fsprogs-এর ভার্সন, https://downloads.whamcloud.com/public/e2fsprogs/ থেকে সর্বশেষ ব্রাঞ্চ ডেপ্লয় করতে "latest" ব্যবহার করুন অথবা অন্য যেকোনো ভার্সন ডেপ্লয় করতে X.XX.X.wcX ব্যবহার করুন।

এমডিএস/এমজিএস কনফিগারেশন

  • mds_ip_address - MDS/MGS নোডের জন্য নির্দিষ্ট করার অভ্যন্তরীণ আইপি ঠিকানা
  • mds_machine_type - MDS/MGS নোডের জন্য ব্যবহৃত মেশিনের ধরন (দেখুন https://cloud.google.com/compute/docs/machine-types )
  • mds_boot_disk_type - MDS/MGS বুট ডিস্কের জন্য ব্যবহৃত ডিস্কের ধরণ (pd-standard, pd-ssd)
  • mds_boot_disk_size_gb - এমডিএস বুট ডিস্কের আকার (জিবি-তে)
  • mdt_disk_type* - মেটাডেটা টার্গেট (MDT) ডিস্কের জন্য ব্যবহৃত ডিস্কের ধরণ (pd-standard, pd-ssd, local-ssd)
  • mdt_disk_size_gb* - MDT ডিস্কের আকার (জিবি-তে)

ওএসএস কনফিগারেশন

  • oss_node_count* - তৈরি করার জন্য অবজেক্ট স্টোরেজ সার্ভার (OSS) নোডের সংখ্যা
  • oss_ip_range_start - OSS নোড(গুলি)-এর জন্য আইপি রেঞ্জের শুরুর মান। নির্দিষ্ট করা না থাকলে, স্বয়ংক্রিয় আইপি বরাদ্দ ব্যবহার করা হবে।
  • oss_machine_type - OSS নোড(গুলি)র জন্য ব্যবহৃত মেশিনের ধরন
  • oss_boot_disk_type - OSS বুট ডিস্কের জন্য ব্যবহৃত ডিস্কের ধরন (pd-standard, pd-ssd)
  • oss_boot_disk_size_gb - এমডিএস বুট ডিস্কের আকার (জিবি-তে)
  • ost_disk_type* - অবজেক্ট স্টোরেজ টার্গেট (OST) ডিস্কের জন্য ব্যবহৃত ডিস্কের ধরণ (pd-standard, pd-ssd, local-ssd)
  • ost_disk_size_gb* - OST ডিস্কের আকার (জিবি-তে)

৪. কনফিগারেশন স্থাপন এবং যাচাই করা

কনফিগারেশনটি স্থাপন করুন

ক্লাউড শেল সেশনে, Lustre-gcp ফোল্ডার থেকে নিম্নলিখিত কমান্ডটি চালান :

gcloud deployment-manager deployments create lustre --config lustre.yaml

এই কমান্ডটি Lustre নামের একটি ডিপ্লয়মেন্ট তৈরি করে। এই প্রক্রিয়াটি সম্পন্ন হতে ১০-২০ মিনিট পর্যন্ত সময় লাগতে পারে, তাই অনুগ্রহ করে ধৈর্য ধরুন

ডেপ্লয়মেন্ট সম্পন্ন হয়ে গেলে আপনি নিচের মতো আউটপুট দেখতে পাবেন:

Create operation operation-1572410719018-5961966591cad-e25384f6-d4c905f8 completed successfully.
NAME                                TYPE                   STATE      ERRORS  INTENT
lustre-all-internal-firewall-rule  compute.v1.firewall    COMPLETED  []
lustre-lustre-network              compute.v1.network     COMPLETED  []
lustre-lustre-subnet               compute.v1.subnetwork  COMPLETED  []
lustre-mds1                        compute.v1.instance    COMPLETED  []
lustre-oss1                        compute.v1.instance    COMPLETED  []
lustre-oss2                        compute.v1.instance    COMPLETED  []
lustre-oss3                        compute.v1.instance    COMPLETED  []
lustre-oss4                        compute.v1.instance    COMPLETED  []
lustre-ssh-firewall-rule           compute.v1.firewall    COMPLETED  []

স্থাপন যাচাই করুন

5f2a0557d3f2476f.png

গুগল ক্লাউড প্ল্যাটফর্ম কনসোলে ডেপ্লয়মেন্টটি দেখতে এই ধাপগুলো অনুসরণ করুন:

  • ক্লাউড প্ল্যাটফর্ম কনসোলের উপরের বাম কোণে থাকা প্রোডাক্টস অ্যান্ড সার্ভিসেস মেনুটি (তিনটি আনুভূমিক রেখা) খুলুন।
  • ডিপ্লয়মেন্ট ম্যানেজার-এ ক্লিক করুন।
  • ডেপ্লয়মেন্টের বিবরণ দেখতে লাস্টার-এ ক্লিক করুন।
  • ওভারভিউ - লাস্টার-এ ক্লিক করুন। ডিপ্লয়মেন্ট প্রোপার্টিজ প্যানে সামগ্রিক ডিপ্লয়মেন্ট কনফিগারেশন প্রদর্শিত হয়।
  • Config প্রপার্টিতে " View " ক্লিক করুন। Config প্যানে পূর্বে পরিবর্তিত ডিপ্লয়মেন্ট কনফিগারেশন YAML ফাইলের বিষয়বস্তু প্রদর্শিত হবে। এগিয়ে যাওয়ার আগে বিষয়বস্তু সঠিক কিনা তা যাচাই করুন। যদি আপনার কোনো ডিপ্লয়মেন্ট কনফিগারেশন পরিবর্তন করার প্রয়োজন হয়, তবে "Clean Up the Deployment"-এর ধাপগুলো অনুসরণ করে ডিপ্লয়মেন্টটি ডিলিট করুন এবং "Configure Lustre Deployment YAML"-এর ধাপগুলো অনুসরণ করে ডিপ্লয়মেন্টটি পুনরায় চালু করুন।
  • (ঐচ্ছিক) লাস্টার-ক্লাস্টার বিভাগের অধীনে, লাস্টার.জিনজা টেমপ্লেট দ্বারা তৈরি প্রতিটি রিসোর্সে ক্লিক করুন এবং বিস্তারিত বিবরণ পর্যালোচনা করুন।

ডেপ্লয়মেন্টের কনফিগারেশন যাচাই করা হয়ে গেলে, চলুন ক্লাস্টারের ইনস্ট্যান্সগুলো চালু আছে কিনা তা নিশ্চিত করি। ক্লাউড প্ল্যাটফর্ম কনসোলে, প্রোডাক্টস অ্যান্ড সার্ভিসেস মেনুতে, কম্পিউট ইঞ্জিন > ভিএম ইনস্ট্যান্সেস-এ ক্লিক করুন।

aec8498e04a3c334.png

VM Instances পৃষ্ঠায়, ডিপ্লয়মেন্ট ম্যানেজার দ্বারা তৈরি করা পাঁচটি ভার্চুয়াল মেশিন ইনস্ট্যান্স পর্যালোচনা করুন। এর মধ্যে রয়েছে lustre-mds1 , lustre-oss1 , lustre-oss2, lustre-oss3 এবং lustre-oss4

৫. লাস্টার ক্লাস্টারে প্রবেশ করুন

ইনস্টলেশন পর্যবেক্ষণ করুন

ভিএম ইনস্ট্যান্সেস পেজে, ইনস্ট্যান্স ডিটেইলস পেজটি খোলার জন্য lustre-mds1-এ ক্লিক করুন

ba0bea7acdbb9527.png

সিরিয়াল কনসোল আউটপুট পৃষ্ঠাটি খুলতে সিরিয়াল পোর্ট ১ (কনসোল) -এ ক্লিক করুন । আমরা এই সিরিয়াল আউটপুটটি MDS ইনস্ট্যান্সের ইনস্টলেশন প্রক্রিয়া নিরীক্ষণ করতে ব্যবহার করব এবং স্টার্টআপ-স্ক্রিপ্টটি সম্পূর্ণ হওয়া পর্যন্ত অপেক্ষা করব। সিরিয়াল আউটপুট আপডেট করতে পৃষ্ঠার উপরের দিকে থাকা "রিফ্রেশ" বোতামে ক্লিক করুন। নোডটি লাস্টার কার্নেলে বুট করার জন্য একবার রিবুট হবে এবং নীচের মতো বার্তা প্রদর্শন করবে:

Startup finished in 838ms (kernel) + 6.964s (initrd) + 49.302s (userspace) = 57.105s.
Lustre: lustre-MDT0000: Connection restored to 374e2d80-0b31-0cd7-b2bf-de35b8119534 (at 0@lo)

এর মানে হলো, লাস্টার ক্লাস্টারে লাস্টার ইনস্টল করা হয়েছে এবং ফাইল সিস্টেমটি ব্যবহারের জন্য প্রস্তুত!

লাস্টার ক্লাস্টারে প্রবেশ করুন

ক্লাউড শেল সেশনে, গুগল ক্লাউড কনসোলে lustre-mds1 ইনস্ট্যান্সের পাশে থাকা SSH বোতামটিতে ক্লিক করুন। বিকল্পভাবে, ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান , যেখানে <ZONE> এর জায়গায় lustre-mds1 নোডের জোনটি বসাতে হবে:

gcloud compute ssh lustre-mds1 --zone=<ZONE>

এই কমান্ডটি lustre-mds1 ভার্চুয়াল মেশিনে লগ ইন করে। এটি হলো লাস্টার মেটাডেটা সার্ভার (MDS) ইনস্ট্যান্স, যা লাস্টার ম্যানেজমেন্ট সার্ভার (MGS) ইনস্ট্যান্স হিসেবেও কাজ করে। এই ইনস্ট্যান্সটি ফাইল সিস্টেমের জন্য সমস্ত অথেনটিকেশন এবং মেটাডেটা অনুরোধ পরিচালনা করে।

পরবর্তীতে পরীক্ষা করার জন্য চলুন আমাদের lustre-mds1 ইনস্ট্যান্সে ফাইল সিস্টেমটি মাউন্ট করি। নিম্নলিখিত কমান্ডগুলো চালান :

sudo mkdir /mnt/lustre
sudo mount -t lustre lustre-mds1:/lustre /mnt/lustre
cd /mnt/lustre

এই তিনটি কমান্ড তিনটি কাজ করে। প্রথম কমান্ডটি "/mnt/lustre" এ একটি স্থানীয় ডিরেক্টরি তৈরি করে, যা আমরা মাউন্ট পয়েন্ট হিসেবে ব্যবহার করব। দ্বিতীয় কমান্ডটি "mount" কমান্ড চালিয়ে "lustre" টাইপের ফাইল সিস্টেমটি মাউন্ট করে, যা lustre-mds1 সার্ভারে থাকে এবং যার ফাইল সিস্টেমের নাম "lustre", যা "/lustre" হিসেবে দেখা যায়। মাউন্ট কমান্ডটি আপনার স্থানীয় "/mnt/lustre" ডিরেক্টরিতে Lustre ফাইল সিস্টেমটি মাউন্ট করে। সবশেষে, তৃতীয় কমান্ডটি ডিরেক্টরি পরিবর্তন করে /mnt/lustre ডিরেক্টরিতে যায়, যেখানে Lustre মাউন্ট করা আছে।

আপনি এখন /mnt/lustre-এ Lustre ফাইল সিস্টেমটি মাউন্ট করেছেন। চলুন দেখে নেওয়া যাক এই ফাইল সিস্টেমটি দিয়ে আমরা কী কী করতে পারি।

৬. লাস্টার সিএলআই টুলস পরিভ্রমণ

আপনি যদি লাস্টার এবং এর টুলগুলোর সাথে পরিচিত না হন, তাহলে আমরা এখানে কয়েকটি গুরুত্বপূর্ণ কমান্ড নিয়ে আলোচনা করব।

লাস্টারের নিম্ন-স্তরের ক্লাস্টার পরিচালনার টুল হলো 'lctl'। আমরা লাস্টার ক্লাস্টার কনফিগার ও পরিচালনা করতে এবং এর সার্ভিসগুলো দেখতে lctl ব্যবহার করতে পারি। আমাদের নতুন লাস্টার ক্লাস্টারের সার্ভিস এবং ইনস্ট্যান্সগুলো দেখতে, নিম্নলিখিত কমান্ডটি চালান:

sudo lctl dl

Lustre YAML কনফিগারেশন ফাইলে আপনি কী পরিবর্তন করেছেন তার উপর নির্ভর করে, আপনি নীচের মতো আউটপুট দেখতে পাবেন:

  0 UP osd-ldiskfs lustre-MDT0000-osd lustre-MDT0000-osd_UUID 11
  1 UP mgs MGS MGS 12
  2 UP mgc MGC10.128.15.2@tcp 374e2d80-0b31-0cd7-b2bf-de35b8119534 4
  3 UP mds MDS MDS_uuid 2
  4 UP lod lustre-MDT0000-mdtlov lustre-MDT0000-mdtlov_UUID 3
  5 UP mdt lustre-MDT0000 lustre-MDT0000_UUID 12
  6 UP mdd lustre-MDD0000 lustre-MDD0000_UUID 3
  7 UP qmt lustre-QMT0000 lustre-QMT0000_UUID 3
  8 UP lwp lustre-MDT0000-lwp-MDT0000 lustre-MDT0000-lwp-MDT0000_UUID 4
  9 UP osp lustre-OST0000-osc-MDT0000 lustre-MDT0000-mdtlov_UUID 4
 10 UP osp lustre-OST0002-osc-MDT0000 lustre-MDT0000-mdtlov_UUID 4
 11 UP osp lustre-OST0001-osc-MDT0000 lustre-MDT0000-mdtlov_UUID 4
 12 UP osp lustre-OST0003-osc-MDT0000 lustre-MDT0000-mdtlov_UUID 4

আমরা আমাদের লাস্টার ম্যানেজমেন্ট সার্ভার (MGS)-কে আইটেম ১, আমাদের লাস্টার মেটাডেটা সার্ভার (MDS)-কে আইটেম ৩, আমাদের লাস্টার মেটাডেটা টার্গেট (MDT)-কে আইটেম ৫, এবং আমাদের চারটি লাস্টার অবজেক্ট স্টোরেজ সার্ভার (OSS)-কে আইটেম ৮ থেকে ১২ হিসেবে দেখতে পারি। অন্যান্য সার্ভিসগুলো কী তা বোঝার জন্য, অনুগ্রহ করে লাস্টার ম্যানুয়ালটি পর্যালোচনা করুন।

লাস্টারের ফাইল সিস্টেম কনফিগারেশন টুল হলো 'lfs'। আমরা আমাদের লাস্টার অবজেক্ট স্টোরেজ সার্ভার (OSS) এবং তাদের নিজ নিজ অবজেক্ট স্টোরেজ টার্গেট (OST) জুড়ে ফাইল স্ট্রাইপিং পরিচালনা করতে, সেইসাথে find, df, এবং কোটা ব্যবস্থাপনার মতো সাধারণ ফাইল সিস্টেম অপারেশনগুলো চালানোর জন্য lfs ব্যবহার করতে পারি।

স্ট্রাইপিং আমাদের লাস্টার ক্লাস্টারে একটি ফাইল কীভাবে বিতরণ করা হবে তা কনফিগার করার সুযোগ দেয়, যাতে সম্ভাব্য সর্বোত্তম পারফরম্যান্স পাওয়া যায়। যদিও একটি বড় ফাইলকে যত বেশি সম্ভব OSS-এর মধ্যে স্ট্রাইপ করলে IO-কে প্যারালাইজ করার মাধ্যমে প্রায়শই সেরা পারফরম্যান্স পাওয়া যায়, কিন্তু একটি ছোট ফাইল স্ট্রাইপ করলে তার পারফরম্যান্স, ফাইলটি শুধুমাত্র একটি ইনস্ট্যান্সে লেখার চেয়েও খারাপ হতে পারে।

এটি পরীক্ষা করার জন্য, চলুন দুটি ডিরেক্টরি তৈরি করি, একটিতে স্ট্রাইপ কাউন্ট থাকবে একটি OSS এবং অন্যটিতে থাকবে "-1", যা নির্দেশ করে যে ঐ ডিরেক্টরিতে লেখা ফাইলগুলো যতটা সম্ভব বেশি OSS জুড়ে স্ট্রাইপ করা উচিত। ডিরেক্টরিগুলো স্ট্রাইপিং কনফিগারেশন ধারণ করতে পারে যা এর মধ্যে তৈরি হওয়া ফাইলগুলোতে স্থানান্তরিত হয়, কিন্তু ইচ্ছা করলে সেই ডিরেক্টরির ভেতরের সাব-ডিরেক্টরি এবং স্বতন্ত্র ফাইলগুলোকে ভিন্নভাবে স্ট্রাইপ করার জন্য কনফিগার করা যেতে পারে। এই দুটি ডিরেক্টরি তৈরি করতে, "/mnt/lustre" ডিরেক্টরিতে থাকাকালীন নিম্নলিখিত কমান্ডগুলো চালান :

sudo mkdir stripe_one
sudo mkdir stripe_all
sudo lfs setstripe -c 1 stripe_one/
sudo lfs setstripe -c -1 stripe_all/

আপনি lfs getstripe ব্যবহার করে কোনো ফাইল বা ডিরেক্টরির স্ট্রাইপ সেটিংস দেখতে পারেন:

sudo lfs getstripe stripe_all/

আপনি আউটপুটে স্ট্রাইপ সংখ্যা -১ হিসাবে সেট করা দেখতে পাবেন:

stripe_all/
stripe_count:  -1 stripe_size:   1048576 pattern:    raid0 stripe_offset: -1

এখন আমরা একাধিক OSS জুড়ে স্ট্রাইপ করা একটি বড় ফাইল লেখার মাধ্যমে অর্জনযোগ্য পারফরম্যান্সের উন্নতি পরীক্ষা করার জন্য প্রস্তুত।

৭. টেস্ট লাস্টার আই/ও

লাস্টার ফাইল সিস্টেমের সম্ভাব্য পারফরম্যান্স সুবিধা এবং স্কেলিং ক্ষমতা প্রদর্শনের জন্য আমরা লাস্টার আইও (Lustre IO)-এর দুটি সাধারণ পরীক্ষা চালাব। প্রথমে, আমরা 'dd' ইউটিলিটি ব্যবহার করে আমাদের 'stripe_one' ডিরেক্টরিতে একটি ৫ জিবি ফাইল লেখার জন্য একটি সাধারণ পরীক্ষা চালাব। নিম্নলিখিত কমান্ডটি চালান :

sudo dd if=/dev/zero of=stripe_one/test bs=1M count=5000

একটিমাত্র অবজেক্ট স্টোরেজ সার্ভারে (OSS) থাকা একটিমাত্র পার্সিস্টেন্ট ডিস্কে (PD) ফাইল সিস্টেমে ৫ জিবি ডেটা লেখার প্রক্রিয়াটিতে গড়ে প্রায় ২৭ সেকেন্ড সময় লাগে।

একাধিক OSS এবং ফলস্বরূপ একাধিক PD জুড়ে স্ট্রাইপিং পরীক্ষা করার জন্য, আমাদের কেবল লেখার আউটপুট ডিরেক্টরিটি পরিবর্তন করতে হবে। নিম্নলিখিত কমান্ডটি চালান :

sudo dd if=/dev/zero of=stripe_all/test bs=1M count=5000

লক্ষ্য করুন, আমরা "of=stripe_one/test"-কে "of=stripe_all/test"-এ পরিবর্তন করেছি। এর ফলে আমাদের একক স্ট্রিম রাইট তার কাজগুলো আমাদের সমস্ত অবজেক্ট স্টোরেজ সার্ভার জুড়ে ভাগ করে দিতে পারবে এবং গড়ে ৫.৫ সেকেন্ডে রাইট প্রক্রিয়াটি সম্পন্ন করতে পারবে, যা চারটি ওএসএস (OSS) ব্যবহার করলে প্রায় ৪ গুণ দ্রুত হয়।

আপনি অবজেক্ট স্টোরেজ সার্ভার (Object Storage Servers) যোগ করার সাথে সাথে এই পারফরম্যান্স ক্রমাগত বাড়তে থাকে, এবং আপনি ফাইল সিস্টেম অনলাইন থাকা অবস্থায় OSS যোগ করতে পারেন ও অনলাইনে ধারণক্ষমতা এবং পারফরম্যান্স বাড়ানোর জন্য সেগুলিতে ডেটা স্ট্রাইপিং শুরু করতে পারেন। গুগল ক্লাউড প্ল্যাটফর্মে লাস্টার (Lustre) ব্যবহার করে সম্ভাবনা অফুরন্ত, এবং আপনি কী তৈরি করতে পারেন ও কী কী সমস্যার সমাধান করতে পারেন, তা দেখার জন্য আমরা অধীর আগ্রহে অপেক্ষা করছি।

৮. উপসংহার

অভিনন্দন, আপনি গুগল ক্লাউড প্ল্যাটফর্মে একটি লাস্টার ক্লাস্টার তৈরি করেছেন! আপনি এই স্ক্রিপ্টগুলো ব্যবহার করে আপনার নিজের লাস্টার ক্লাস্টার তৈরি করতে এবং এটিকে আপনার ক্লাউড-ভিত্তিক কম্পিউটিং ক্লাস্টারের সাথে সংযুক্ত করতে পারেন।

ডেপ্লয়মেন্ট পরিষ্কার করুন

লাস্টার নোড থেকে লগআউট করুন:

exit

আমাদের কাজ শেষ হয়ে গেলে, Lustre ক্লাস্টার থেকে লগ আউট করার পর আপনার Google Cloud Shell থেকে নিম্নলিখিত কমান্ডটি চালিয়ে আপনি সহজেই ডেপ্লয়মেন্টটি পরিষ্কার করতে পারবেন:

gcloud deployment-manager deployments delete lustre

নির্দেশিত হলে, চালিয়ে যাওয়ার জন্য Y টাইপ করুন। এই প্রক্রিয়াটিতে কিছুটা সময় লাগতে পারে, অনুগ্রহ করে ধৈর্য ধরুন।

প্রকল্পটি মুছে ফেলুন

পরিষ্কার করার জন্য, আমরা কেবল আমাদের প্রজেক্টটি মুছে ফেলি।

  • নেভিগেশন মেনু থেকে IAM ও অ্যাডমিন নির্বাচন করুন।
  • তারপর সাবমেনুতে থাকা সেটিংসে ক্লিক করুন।
  • "ডিলিট প্রজেক্ট" লেখা ট্র্যাশক্যান আইকনটিতে ক্লিক করুন।
  • নির্দেশনাগুলো অনুসরণ করুন।

আমরা যা আলোচনা করেছি

  • GCP Deployment Manager Service কীভাবে ব্যবহার করবেন।
  • GCP-তে কীভাবে একটি Lustre ফাইল সিস্টেম কনফিগার এবং ডেপ্লয় করতে হয়।
  • লাস্টার ফাইল সিস্টেমে স্ট্রাইপিং কীভাবে কনফিগার করবেন এবং সাধারণ I/O কীভাবে পরীক্ষা করবেন।

সহায়তা খুঁজুন

আপনি কি লাস্টার ডেপ্লয়মেন্ট ম্যানেজার স্ক্রিপ্ট ব্যবহার করে চমৎকার কিছু তৈরি করছেন? কোনো প্রশ্ন আছে? গুগল ক্লাউড লাস্টার ডিসকাশন গ্রুপে আমাদের সাথে চ্যাট করুন। ফিচার অনুরোধ করতে, মতামত জানাতে বা বাগ রিপোর্ট করতে অনুগ্রহ করে এই ফর্মটি ব্যবহার করুন, অথবা নির্দ্বিধায় কোডটি পরিবর্তন করে একটি পুল রিকোয়েস্ট জমা দিন! কোনো গুগল ক্লাউড বিশেষজ্ঞের সাথে কথা বলতে চান? গুগল ক্লাউডের হাই পারফরম্যান্স কম্পিউটিং ওয়েবসাইটের মাধ্যমে আজই গুগল ক্লাউড টিমের সাথে যোগাযোগ করুন।

আরও জানুন

প্রতিক্রিয়া

এই লিঙ্কের মাধ্যমে কোডল্যাবটি সম্পর্কে আপনার মতামত জমা দিন। মতামত জানাতে ৫ মিনিটেরও কম সময় লাগে। ধন্যবাদ!