یک سیستم فایل موازی Luster را در GCP مستقر کنید

۱. مرور کلی

برای اجرای یک کلاستر سیستم فایل Lustre Parallel روی پلتفرم ابری گوگل، به آزمایشگاه کد گوگل خوش آمدید!

d51beef5f729cbe9.png

داده‌ها هسته اصلی محاسبات با کارایی بالا (HPC) هستند و دسترسی به حجم زیادی از داده‌ها با سرعت بسیار بالا و تأخیر کم، همواره یک چالش کلیدی در اجرای بارهای کاری HPC بوده است. این نیاز به ذخیره‌سازی با کارایی بالا در فضای ابری تغییر نکرده است و در واقع، توانایی استفاده سریع و آسان از حجم زیادی از فضای ذخیره‌سازی، به امری حیاتی تبدیل شده است.

مراکز HPC مدت‌هاست که با استفاده از فناوری‌هایی مانند سیستم فایل موازی Lustre، این نیاز را در محل برآورده می‌کنند. Lustre یکی از محبوب‌ترین راه‌حل‌های ذخیره‌سازی با کارایی بالا و متن‌باز امروزی است و از ژوئن ۲۰۰۵، به طور مداوم توسط حداقل نیمی از ده ابررایانه برتر و بیش از ۶۰ ابررایانه از ۱۰۰ ابررایانه سریع جهان مورد استفاده قرار گرفته است. Lustre توانایی افزایش ظرفیت تا صدها پتابایت را دارد و حداکثر عملکرد ممکن را برای کارهای HPC ارائه می‌دهد، به طوری که سیستم‌های آن در یک فضای نام واحد، توان عملیاتی چند ترابایت بر ثانیه را ارائه می‌دهند.

گوگل کلود برای پاسخگویی به تقاضای فضای ذخیره‌سازی، دو رویکرد را در پیش گرفته است. اول، GCP با DDN همکاری کرد تا نرم‌افزار DDN EXAScaler Lustre که در سطح سازمانی و پشتیبانی می‌شود را به بازار GCP بیاورد. دوم، مهندسان ما در گوگل کلود مجموعه‌ای از اسکریپت‌ها را توسعه داده و متن‌باز کرده‌اند تا به راحتی یک کلاستر ذخیره‌سازی Lustre را در Google Compute Engine با استفاده از Google Cloud Deployment Manager پیکربندی و مستقر کنند.

Lustre در پلتفرم ابری گوگل به همان اندازه قادر به ارائه حداکثر عملکرد زیرساختی است که روی آن اجرا می‌شود. عملکرد آن در GCP به قدری خوب است که در سال ۲۰۱۹ به همراه شریک ما DDN، در رتبه هشتم معیار سیستم ذخیره‌سازی IO-500 قرار گرفت و بالاترین رتبه سیستم فایل مبتنی بر ابر را در IO-500 به خود اختصاص داد. امروز شما را در نحوه استقرار اسکریپت‌های Open Source Deployment Manager برای Lustre راهنمایی خواهیم کرد. اگر به داشتن یک تجربه Lustre سازمانی و مقاوم، با پشتیبانی Lustre-expert برای خوشه Lustre خود و همچنین ویژگی‌هایی مانند رابط کاربری گرافیکی مدیریت و نظارت یا تنظیمات Lustre علاقه‌مند هستید، توصیه می‌کنیم پیشنهاد DDN EXAScaler Marketplace را بررسی کنید.

آنچه یاد خواهید گرفت

  • نحوه استفاده از سرویس مدیریت استقرار GCP
  • نحوه پیکربندی و استقرار سیستم فایل Lustre در GCP.
  • نحوه پیکربندی striping و آزمایش ورودی/خروجی‌های ساده به سیستم فایل Lustre.

پیش‌نیازها

  • حساب کاربری پلتفرم گوگل کلود و یک پروژه با قابلیت پرداخت
  • تجربه اولیه لینوکس

۲. راه‌اندازی

تنظیم محیط خودتنظیم

ایجاد یک پروژه

اگر از قبل حساب گوگل (Gmail یا G Suite) ندارید، باید یکی ایجاد کنید . وارد کنسول پلتفرم ابری گوگل ( console.cloud.google.com ) شوید و صفحه مدیریت منابع را باز کنید:

۳۵۹c۰۶e۰۷e۶d۶۹۹f.png

روی ایجاد پروژه کلیک کنید.

25c23d651abb837b.png

نام پروژه را وارد کنید . شناسه پروژه (که در تصویر بالا با رنگ قرمز مشخص شده است) را به خاطر بسپارید . شناسه پروژه باید در تمام پروژه‌های Google Cloud یک نام منحصر به فرد باشد. اگر نام پروژه شما منحصر به فرد نباشد، Google Cloud بر اساس نام پروژه، یک شناسه پروژه تصادفی ایجاد می‌کند.

در مرحله بعد، برای استفاده از منابع گوگل کلود، باید پرداخت را در کنسول توسعه‌دهندگان فعال کنید .

اجرای این آزمایشگاه کد نباید بیش از چند دلار برای شما هزینه داشته باشد، اما اگر تصمیم به استفاده از منابع بیشتر بگیرید یا اگر آنها را در حال اجرا رها کنید، می‌تواند بیشتر هم بشود (به بخش «نتیجه‌گیری» در انتهای این سند مراجعه کنید). محاسبه‌گر قیمت پلتفرم ابری گوگل اینجا موجود است.

کاربران جدید پلتفرم ابری گوگل واجد شرایط دریافت یک دوره آزمایشی رایگان ۳۰۰ دلاری هستند.

پوسته ابری گوگل

اگرچه می‌توان از راه دور و از طریق لپ‌تاپ، گوگل کلود را مدیریت کرد، اما در این آزمایشگاه کد، ما از گوگل کلود شل ، یک محیط خط فرمان که در فضای ابری اجرا می‌شود، استفاده خواهیم کرد.

راه‌اندازی پوسته ابری گوگل

از کنسول GCP روی آیکون Cloud Shell در نوار ابزار بالا سمت راست کلیک کنید:

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 Deployment Manager را دانلود کنید

در بخش Cloud Shell، دستور زیر را برای کلون کردن (دانلود) مخزن Git که حاوی فایل‌های Lustre برای مدیریت استقرار پلتفرم ابری گوگل است، اجرا کنید:

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

با اجرای دستور زیر به دایرکتوری پیکربندی استقرار Lustre بروید:

cd deploymentmanager-samples/community/lustre/

پیکربندی استقرار Lustre با استفاده از YAML

مدیر استقرار از یک فایل YAML برای ارائه پیکربندی استقرار استفاده می‌کند. این فایل YAML جزئیات پیکربندی استقرار، مانند نسخه Lustre برای استقرار، و انواع نمونه ماشین برای استقرار را شرح می‌دهد. این فایل به طور پیش‌فرض برای استقرار در یک پروژه جدید بدون هیچ گونه افزایش سهمیه پیکربندی شده است، با این حال می‌توانید نوع یا ظرفیت ماشین را به دلخواه برای این آزمایشگاه کد تغییر دهید. این آزمایشگاه کد برای استفاده از این پیش‌فرض‌ها نوشته شده است، بنابراین اگر تغییری ایجاد کردید، باید آن تغییرات را در سراسر این آزمایشگاه کد اعمال کنید تا از خطاها جلوگیری شود. در محیط عملیاتی، حداقل یک نمونه 32 vCPU برای گره MDS و حداقل یک نمونه 8 یا 16 vCPU برای گره‌های OSS، بسته به ظرفیت و نوع ذخیره‌سازی، توصیه می‌کنیم.

برای بررسی یا ویرایش فایل YAML در جلسه Cloud Shell، فایل YAML پیکربندی استقرار Lustre-cluster.yaml را باز کنید . می‌توانید از ویرایشگر خط فرمان مورد نظر خود (vi، nano، emacs و غیره) استفاده کنید یا از ویرایشگر کد کنسول Cloud برای مشاهده محتوای فایل استفاده کنید:

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* - نام کلاستر Lustre، که به همه منابع مستقر شده اضافه می‌شود.
  • منطقه* - منطقه‌ای که قرار است کلاستر در آن مستقر شود
  • cidr* - محدوده IP با فرمت CIDR
  • external_ips* - درست/غلط، گره‌های Lustre آدرس‌های IP خارجی دارند. اگر نادرست باشد، یک Cloud NAT به عنوان دروازه NAT تنظیم شده است.
  • vpc_net - این فیلد و فیلد vpc_subnet را برای استقرار خوشه Lustre در یک VPC موجود تعریف کنید.
  • vpc_subnet - زیرشبکه VPC موجود برای استقرار خوشه Lustre در آن
  • shared_vpc_host_proj - این فیلد و همچنین فیلدهای vpc_net و vpc_subnet را برای استقرار کلاستر در یک VPC اشتراکی تعریف کنید.

پیکربندی سیستم فایل

  • fs_name - نام سیستم فایل Lustre
  • lustre_version - نسخه Lustre برای استقرار، از "latest-release" برای استقرار آخرین شاخه از https://downloads.whamcloud.com/public/lustre/ یا lustre-XXX برای استقرار هر نسخه دیگر استفاده کنید
  • e2fs_version - نسخه E2fsprogs برای استقرار، از "latest" برای استقرار آخرین شاخه از https://downloads.whamcloud.com/public/e2fsprogs/ یا از X.XX.X.wcX برای استقرار هر نسخه دیگری استفاده کنید

پیکربندی MDS/MGS

  • mds_ip_address - آدرس IP داخلی برای مشخص کردن گره 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 - اندازه دیسک بوت MDS به گیگابایت
  • mdt_disk_type* - نوع دیسک مورد استفاده برای دیسک Metadata Target (MDT) (pd-standard، pd-ssd، local-ssd)
  • mdt_disk_size_gb* - اندازه دیسک MDT به گیگابایت

پیکربندی OSS

  • oss_node_count* - تعداد گره‌های سرور ذخیره‌سازی شیء (OSS) برای ایجاد
  • oss_ip_range_start - شروع محدوده IP برای گره(های) OSS. اگر مشخص نشده باشد، از تخصیص خودکار IP استفاده می‌کند.
  • oss_machine_type - نوع ماشین مورد استفاده برای گره(های) OSS
  • oss_boot_disk_type - نوع دیسک مورد استفاده برای دیسک بوت OSS (pd-standard، pd-ssd)
  • oss_boot_disk_size_gb - اندازه دیسک بوت MDS به گیگابایت
  • ost_disk_type* - نوع دیسک مورد استفاده برای دیسک Object Storage Target (OST) (pd-standard، pd-ssd، local-ssd)
  • ost_disk_size_gb* - اندازه دیسک OST به گیگابایت

۴. استقرار و تأیید پیکربندی

پیکربندی را مستقر کنید

در بخش Cloud Shell، دستور زیر را از پوشه Lustre-gcp اجرا کنید :

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

این دستور یک deployment به نام 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

برای مشاهده‌ی استقرار در کنسول پلتفرم گوگل کلود، این مراحل را دنبال کنید:

  • در کنسول پلتفرم ابری، منوی محصولات و خدمات را در گوشه سمت چپ بالای کنسول (سه خط افقی) باز کنید.
  • روی مدیر استقرار کلیک کنید.
  • برای مشاهده جزئیات استقرار، روی Lustre کلیک کنید.
  • روی Overview - Lustre کلیک کنید. پنجره Deployment properties پیکربندی کلی استقرار را نمایش می‌دهد.
  • روی « مشاهده » در ویژگی پیکربندی کلیک کنید. پنجره پیکربندی، محتویات فایل YAML پیکربندی استقرار را که قبلاً اصلاح شده است، نمایش می‌دهد. قبل از ادامه، صحت محتویات را تأیید کنید. اگر نیاز به تغییر پیکربندی استقرار دارید، کافیست آن را طبق مراحل «پاکسازی استقرار» حذف کنید و استقرار را طبق مراحل «پیکربندی استقرار Lustre YAML» مجدداً راه‌اندازی کنید.
  • (اختیاری) در بخش Lustre-cluster ، روی هر یک از منابع ایجاد شده توسط الگوی Lustre.jinja کلیک کنید و جزئیات را بررسی کنید.

پس از تأیید پیکربندی استقرار، اجازه دهید تأیید کنیم که نمونه‌های کلاستر شروع به کار کرده‌اند. در کنسول پلتفرم ابری، در منوی محصولات و خدمات ، روی Compute Engine > VM Instances کلیک کنید.

aec8498e04a3c334.png

در صفحه VM Instances ، پنج نمونه ماشین مجازی که توسط مدیر استقرار ایجاد شده‌اند را بررسی کنید. این شامل lustre-mds1 ، lustre-oss1 ، lustre-oss2، lustre-oss3 و lustre-oss4 می‌شود.

۵. به خوشه‌ی درخشش دسترسی پیدا کنید

نظارت بر نصب

در صفحه VM Instances، روی lustre-mds1 کلیک کنید تا صفحه جزئیات Instance باز شود.

ba0bea7acdbb9527.png

روی پورت سریال ۱ (کنسول) کلیک کنید تا صفحه خروجی کنسول سریال باز شود. ما از این خروجی سریال برای نظارت بر فرآیند نصب نمونه MDS استفاده خواهیم کرد و منتظر می‌مانیم تا اسکریپت راه‌اندازی کامل شود. برای به‌روزرسانی خروجی سریال، روی دکمه "refresh" در بالای صفحه کلیک کنید. گره یک بار راه‌اندازی مجدد می‌شود تا به هسته Lustre بوت شود و پیام‌هایی مشابه زیر نمایش داده می‌شود:

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 روی کلاستر Lustre نصب شده است و سیستم فایل آماده‌ی استفاده است!

به خوشه لوستر دسترسی پیدا کنید

در جلسه Cloud Shell، روی دکمه SSH کنار نمونه lustre-mds1 در کنسول Google Cloud کلیک کنید. همچنین، دستور زیر را در Cloud Shell اجرا کنید و <ZONE> را به جای منطقه گره lustre-mds1 جایگزین کنید:

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

این دستور به ماشین مجازی lustre-mds1 وارد می‌شود. این نمونه Lustre Metadata Server (MDS) است که به عنوان نمونه Lustre Management Server (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" دیده می‌شود. دستور mount سیستم فایل Lustre را در دایرکتوری محلی "/mnt/lustre" شما متصل می‌کند. در نهایت، دستور سوم دایرکتوری را به دایرکتوری /mnt/lustre تغییر می‌دهد، جایی که Lustre متصل شده است.

اکنون سیستم فایل Lustre را در /mnt/lustre مانت کرده‌اید. بیایید نگاهی به کارهایی که می‌توانیم با این سیستم فایل انجام دهیم، بیندازیم.

۶. بررسی ابزارهای رابط خط فرمان Lustre

اگر با Lustre و ابزارهای آن آشنا نیستید، در اینجا چند دستور مهم را بررسی خواهیم کرد.

ابزار مدیریت کلاستر سطح پایین Lustre، "lctl" است. ما می‌توانیم از lctl برای پیکربندی و مدیریت کلاستر Lustre و مشاهده سرویس‌های کلاستر Lustre استفاده کنیم. برای مشاهده سرویس‌ها و نمونه‌های موجود در کلاستر جدید Lustre، دستور زیر را اجرا کنید:

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) خود را به عنوان موارد ۸ تا ۱۲ ببینیم. برای درک سایر سرویس‌ها، لطفاً دفترچه راهنمای لوستر را بررسی کنید.

ابزار پیکربندی سیستم فایل Lustre "lfs" است. ما می‌توانیم از lfs برای مدیریت تقسیم‌بندی فایل‌ها در سرورهای ذخیره‌سازی شیء Lustre (OSS) و اهداف ذخیره‌سازی شیء (OST) مربوطه و همچنین اجرای عملیات رایج سیستم فایل مانند find، df و مدیریت سهمیه استفاده کنیم.

Striping به ما امکان می‌دهد تا نحوه توزیع یک فایل در سراسر خوشه Lustre خود را پیکربندی کنیم تا بهترین عملکرد ممکن را ارائه دهیم. در حالی که Striping یک فایل بزرگ در میان حداکثر OSS های ممکن اغلب با موازی سازی IO بهترین عملکرد را ارائه می‌دهد، Striping یک فایل کوچک ممکن است منجر به عملکرد بدتری نسبت به زمانی شود که آن فایل فقط در یک نمونه واحد نوشته شود.

برای آزمایش این، بیایید دو دایرکتوری تنظیم کنیم، یکی با تعداد نوار یک 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/

شما می‌توانید تنظیمات stripe یک فایل یا دایرکتوری را با استفاده از lfs getstripe مشاهده کنید:

sudo lfs getstripe stripe_all/

خروجی را مشاهده خواهید کرد که تعداد نوارها را روی -1 تنظیم کرده است:

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

اکنون آماده‌ایم تا با نوشتن یک فایل بزرگ که در چندین OSS قرار داده شده است، بهبودهای عملکردی قابل دستیابی را آزمایش کنیم.

۷. تست ورودی/خروجی لوستر

ما دو آزمایش ساده از Lustre IO انجام خواهیم داد تا مزایای عملکرد و قابلیت‌های مقیاس‌پذیری سیستم فایل Lustre را نشان دهیم. ابتدا، یک آزمایش ساده با استفاده از ابزار "dd" برای نوشتن یک فایل 5 گیگابایتی در دایرکتوری "stripe_one" خود انجام خواهیم داد. دستور زیر را اجرا کنید :

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

فرآیند نوشتن ۵ گیگابایت داده در سیستم فایل، به طور متوسط ​​حدود ۲۷ ثانیه طول می‌کشد و این کار روی یک دیسک پایدار (PD) روی یک سرور ذخیره‌سازی شیء (OSS) انجام می‌شود.

برای آزمایش جداسازی داده‌ها در چندین OSS و در نتیجه چندین PD، کافی است دایرکتوری خروجی که در آن می‌نویسیم را تغییر دهیم. دستور زیر را اجرا کنید :

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

توجه کنید که ما "of=stripe_one/test" را به "of=stripe_all/test" تغییر دادیم. این به نوشتن جریان واحد ما اجازه می‌دهد تا نوشتن‌های خود را در تمام سرورهای ذخیره‌سازی شیء ما توزیع کند و نوشتن را به طور متوسط ​​در 5.5 ثانیه انجام دهد، که حدود 4 برابر سریع‌تر با چهار OSS است.

این عملکرد با اضافه کردن سرورهای ذخیره‌سازی شیءگرا (Object Storage Servers) همچنان افزایش می‌یابد و می‌توانید OSSها را با سیستم فایل آنلاین اضافه کنید و شروع به تقسیم داده‌ها به آنها کنید تا ظرفیت و عملکرد آنلاین را افزایش دهید. امکانات با استفاده از Lustre در Google Cloud Platform بی‌پایان است و ما مشتاقیم ببینیم چه چیزی می‌توانید بسازید و چه مشکلاتی را می‌توانید حل کنید.

۸. نتیجه‌گیری

تبریک می‌گوییم، شما یک خوشه Lustre در پلتفرم ابری گوگل ایجاد کرده‌اید! می‌توانید از این اسکریپت‌ها به عنوان نقطه شروع برای ساخت خوشه Lustre خود و ادغام آن با خوشه محاسبات ابری خود استفاده کنید.

پاکسازی استقرار

خروج از گره لوستر:

exit

شما می‌توانید پس از اتمام کار، با اجرای دستور زیر از Google Cloud Shell خود، پس از خروج از خوشه Lustre، به راحتی استقرار را پاکسازی کنید:

gcloud deployment-manager deployments delete lustre

وقتی از شما خواسته شد، برای ادامه، Y را تایپ کنید. این عملیات ممکن است مدتی طول بکشد، لطفاً صبور باشید.

حذف پروژه

برای پاکسازی، ما به سادگی پروژه خود را حذف می‌کنیم.

  • در منوی ناوبری، IAM & Admin را انتخاب کنید.
  • سپس در زیرمنو روی تنظیمات کلیک کنید
  • روی آیکون سطل زباله با متن «حذف پروژه» کلیک کنید
  • دستورالعمل‌های راهنما را دنبال کنید

آنچه ما پوشش داده‌ایم

  • نحوه استفاده از سرویس مدیریت استقرار GCP.
  • نحوه پیکربندی و استقرار سیستم فایل Lustre در GCP.
  • نحوه پیکربندی striping و آزمایش ورودی/خروجی‌های ساده به سیستم فایل Lustre.

پشتیبانی پیدا کنید

آیا با استفاده از اسکریپت‌های مدیریت استقرار Lustre چیزی جالب می‌سازید؟ سوالی دارید؟ در گروه بحث Google Cloud Lustre با ما گفتگو کنید. برای درخواست ویژگی‌ها، ارائه بازخورد یا گزارش اشکالات، لطفاً از این فرم استفاده کنید، یا در صورت تمایل کد را تغییر داده و درخواست pull ارسال کنید! آیا می‌خواهید با یک متخصص Google Cloud صحبت کنید؟ همین امروز از طریق وب‌سایت محاسبات با عملکرد بالای Google Cloud با تیم Google Cloud تماس بگیرید.

اطلاعات بیشتر

بازخورد

لطفا نظرات خود را در مورد این آزمایشگاه کد با استفاده از این لینک ارسال کنید. ارسال نظرات کمتر از ۵ دقیقه طول می‌کشد. متشکرم!