نشر نظام ملفات Lustre Parallel File System على Google Cloud Platform

1. نظرة عامة

مرحبًا بك في الدرس التطبيقي حول الترميز من Google لتشغيل مجموعة من أنظمة الملفات المتوازية من Lustre على Google Cloud Platform.

d51beef5f729cbe9.png

تُعدّ البيانات أساسًا لممارسة الحوسبة العالية الأداء، وقد كان الوصول إلى كميات كبيرة من البيانات بسرعات عالية للغاية ووقت استجابة منخفض دائمًا من التحديات الرئيسية في تنفيذ مهام الحوسبة العالية الأداء. لم يتغيّر هذا الشرط الخاص بسعة التخزين العالية الأداء في السحابة الإلكترونية، بل أصبحت القدرة على استخدام كميات هائلة من سعة التخزين بسرعة وسهولة أمرًا بالغ الأهمية.

لطالما لبّت مراكز الحوسبة عالية الأداء هذه الحاجة في الموقع باستخدام تكنولوجيات مثل نظام الملفات المتوازية Lustre. يُعدّ Lustre من أكثر حلول التخزين المفتوحة المصدر عالية الأداء شيوعًا اليوم، ومنذ يونيو 2005، تم استخدامه باستمرار في نصف أسرع عشرة حواسيب فائقة على الأقل، وأكثر من 60 من أسرع 100 حاسوب فائق في العالم. يمكن توسيع نطاق Lustre إلى مئات البيتابايت من السعة، وتقديم أعلى أداء ممكن لمهام الحوسبة عالية الأداء، مع توفير الأنظمة لسرعة معالجة بيانات تيرابايت في الثانية في مساحة اسم واحدة.

من أجل تلبية الطلب على التخزين، اتّبعت Google Cloud طريقتَين. أولاً، عقدت Google Cloud شراكة مع DDN لإتاحة برنامج DDN EXAScaler Lustre المتوافق مع المؤسسات على "سوق Google Cloud". ثانيًا، طوّر مهندسو Google Cloud مجموعة من النصوص البرمجية وأتاحوا مصدرها لتسهيل إعداد مجموعة تخزين Lustre ونشرها على Google Compute Engine باستخدام Google Cloud Deployment Manager.

تتوفّر إمكانات Lustre على Google Cloud Platform نفسها التي تتيح تحقيق الحد الأقصى من أداء البنية الأساسية التي تعمل عليها. وقد حقّق أداءً جيدًا على GCP لدرجة أنّه حلّ في المرتبة الثامنة في معيار نظام التخزين IO-500 في عام 2019 مع شريكنا DDN، ما يجعله نظام الملفات المستند إلى السحابة الإلكترونية الأعلى ترتيبًا على IO-500. سنشرح لك اليوم كيفية نشر نصوص Open Source Deployment Manager البرمجية الخاصة بنظام Lustre. إذا كنت مهتمًا بالحصول على تجربة Lustre محسّنة ومخصّصة للمؤسسات، مع دعم من خبراء Lustre لمجموعة Lustre، بالإضافة إلى ميزات مثل واجهة مستخدم تصويرية للإدارة والرصد أو إعدادات Lustre، ننصحك بالاطّلاع على حلّ DDN EXAScaler Marketplace المقترَح.

أهداف الدورة التعليمية

  • كيفية استخدام خدمة GCP Deployment Manager
  • كيفية إعداد نظام ملفات Lustre ونشره على Google Cloud
  • كيفية ضبط التقسيم واختبار وحدات الإدخال والإخراج البسيطة في نظام ملفات Lustre

المتطلبات الأساسية

  • حساب Google Cloud Platform ومشروع يتضمّن الفوترة
  • تجربة Linux الأساسية

2. الإعداد

إعداد البيئة بالسرعة التي تناسبك

إنشاء "مشروع"

إذا لم يكن لديك حساب على Google (Gmail أو G Suite)، عليك إنشاء حساب. سجِّل الدخول إلى وحدة تحكّم Google Cloud Platform ( console.cloud.google.com) وافتح صفحة "إدارة الموارد":

359c06e07e6d699f.png

انقر على إنشاء مشروع.

25c23d651abb837b.png

أدخِل اسم مشروع. تذكَّر رقم تعريف المشروع (المميّز باللون الأحمر في لقطة الشاشة أعلاه). يجب أن يكون رقم تعريف المشروع اسمًا فريدًا في جميع مشاريع Google Cloud. إذا لم يكن اسم مشروعك فريدًا، ستنشئ Google Cloud رقم تعريف عشوائيًا للمشروع استنادًا إلى اسم المشروع.

بعد ذلك، عليك تفعيل الفوترة في Developers Console من أجل استخدام موارد Google Cloud.

لن تكلفك تجربة هذا الدرس التطبيقي حول الترميز أكثر من بضعة دولارات، ولكن قد تكون التكلفة أعلى إذا قررت استخدام المزيد من الموارد أو إذا تركتها قيد التشغيل (راجِع قسم "الخلاصة" في نهاية هذا المستند). تتوفّر حاسبة الأسعار في Google Cloud Platform هنا.

يمكن للمستخدمين الجدد في Google Cloud Platform الاستفادة من فترة تجريبية مجانية بقيمة 300 دولار أمريكي.

Google Cloud Shell

على الرغم من إمكانية تشغيل Google Cloud عن بُعد من الكمبيوتر المحمول، سنستخدم في هذا الدرس التطبيقي حول الترميز Google Cloud Shell، وهي بيئة سطر أوامر تعمل في السحابة الإلكترونية.

تشغيل Google Cloud Shell

من وحدة تحكّم Google Cloud Platform، انقر على رمز Cloud Shell في شريط الأدوات العلوي الأيسر:

dbad104cef962719.png

بعد ذلك، انقر على بدء Cloud Shell:

4e50db320508ac88.png

ينبغي ألا تستغرق إدارة الحسابات والاتصال بالبيئة أكثر من بضع لحظات.

20b0aa80492144d.png

يتم تحميل هذه الآلة الافتراضية مزوّدة بكل أدوات التطوير التي ستحتاج إليها. توفّر هذه الخدمة دليلًا منزليًا دائمًا بسعة 5 غيغابايت، وتعمل على Google Cloud، ما يؤدي إلى تحسين أداء الشبكة بشكل كبير وتبسيط عملية المصادقة. يمكن إنجاز معظم عملك في هذا المختبر، إن لم يكن كله، باستخدام متصفّح ويب أو جهاز Google Chromebook فقط.

بعد الاتصال بصدفة السحابة، من المفترض أن ترى أنّه تمّت مصادقتك وأنّه تمّ ضبط المشروع على 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].

3- إعداد ومراجعة إعدادات نشر Lustre

تنزيل نصوص Lustre Deployment Manager البرمجية

في جلسة Cloud Shell، نفِّذ الأمر التالي لاستنساخ (تنزيل) مستودع Git الذي يحتوي على ملفات Lustre for Google Cloud Platform deployment-manager:

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

انتقِل إلى دليل إعدادات نشر Lustre من خلال تنفيذ الأمر التالي:

cd deploymentmanager-samples/community/lustre/

ضبط ملف YAML الخاص بنشر Lustre

يستخدم Deployment Manager ملف YAML لتوفير إعدادات النشر. يوضّح ملف YAML هذا تفاصيل إعداد عملية النشر، مثل إصدار Lustre الذي سيتم نشره وأنواع مثيلات الأجهزة التي سيتم نشرها. تم ضبط الملف تلقائيًا على التفعيل في مشروع جديد بدون أي زيادات في الحصة، ولكن يمكنك تغيير نوع الجهاز أو سعته حسب الرغبة في هذا الدرس التطبيقي حول الترميز. تمت كتابة هذا الدرس التطبيقي العملي باستخدام هذه الإعدادات التلقائية، لذا إذا أجريت أي تغييرات، يجب تطبيقها في جميع أنحاء هذا الدرس التطبيقي العملي لتجنُّب الأخطاء. في مرحلة الإنتاج، ننصح باستخدام مثيل يحتوي على 32 وحدة معالجة مركزية افتراضية على الأقل لعقدة MDS، ومثيل يحتوي على 8 أو 16 وحدة معالجة مركزية افتراضية على الأقل لعُقد OSS، وذلك حسب سعة التخزين ونوعه.

لمراجعة ملف YAML أو تعديله في جلسة Cloud Shell، افتح ملف YAML الخاص بإعدادات النشر Lustre-cluster.yaml. يمكنك استخدام محرّر سطر الأوامر المفضّل لديك (vi أو nano أو emacs أو غير ذلك) أو استخدام "محرّر الرموز البرمجية" في Cloud Console لعرض محتويات الملف:

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، ويتم إضافته قبل جميع الموارد التي تم نشرها
  • zone* - المنطقة التي سيتم نشر المجموعة فيها
  • cidr* - نطاق عناوين IP بتنسيق CIDR
  • external_ips* - True/False، ما إذا كانت عقد 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-X.X.X لنشر أي إصدارات أخرى
  • 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 - Size of MDS boot disk in GB
  • mdt_disk_type* - نوع القرص الذي سيتم استخدامه لقرص البيانات الوصفية المستهدفة (MDT) (pd-standard وpd-ssd وlocal-ssd)
  • mdt_disk_size_gb* - حجم قرص MDT بالغيغابايت

إعدادات نظام التشغيل

  • 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 - Size of MDS boot disk in GB
  • ost_disk_type* - نوع القرص الذي سيتم استخدامه لقرص Object Storage Target (OST) (pd-standard أو pd-ssd أو local-ssd)
  • ost_disk_size_gb* - حجم قرص OST بالغيغابايت

4. تفعيل الإعدادات والتحقّق منها

تفعيل الإعداد

في جلسة Cloud Shell، نفِّذ الأمر التالي من المجلد Lustre-gcp:

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

ينشئ هذا الأمر عملية نشر باسم Lustre. قد يستغرق اكتمال العملية من 10 إلى 20 دقيقة، لذا يُرجى الانتظار.

بعد اكتمال عملية النشر، ستظهر لك نتيجة مشابهة لما يلي:

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

اتّبِع الخطوات التالية لعرض عملية النشر في "وحدة تحكّم Google Cloud Platform":

  • في Cloud Platform Console، افتح قائمة المنتجات والخدمات في أعلى يمين وحدة التحكّم (ثلاثة خطوط أفقية).
  • انقر على Deployment Manager.
  • انقر على Lustre لعرض تفاصيل عملية النشر.
  • انقر على نظرة عامة - Lustre. تعرض لوحة خصائص النشر إعدادات النشر العامة.
  • انقر على عرض في الموقع Config. تعرض لوحة الإعدادات محتوى ملف YAML الخاص بإعدادات النشر الذي تم تعديله سابقًا. تأكَّد من صحة المحتوى قبل المتابعة. إذا كنت بحاجة إلى تغيير إعدادات عملية النشر، ما عليك سوى حذف عملية النشر وفقًا للخطوات الواردة في "تنظيف عملية النشر"، وإعادة تشغيل عملية النشر وفقًا للخطوات الواردة في "ضبط ملف YAML لعملية نشر Lustre".
  • (اختياري) ضمن قسم Lustre-cluster، انقر على كل مورد تم إنشاؤه بواسطة نموذج Lustre.jinja وراجِع التفاصيل.

بعد التحقّق من صحة إعدادات عملية النشر، لنؤكّد أنّ مثيلات المجموعة قد بدأت. في Cloud Platform Console، انقر على Compute Engine > VM Instances في قائمة المنتجات والخدمات.

aec8498e04a3c334.png

في صفحة مثيلات الأجهزة الافتراضية، راجِع مثيلات الأجهزة الافتراضية الخمسة التي أنشأها Deployment Manager. ويشمل ذلك lustre-mds1 وlustre-oss1 وlustre-oss2 وlustre-oss3 وlustre-oss4.

5- الوصول إلى مجموعة Lustre

مراقبة عملية التثبيت

في صفحة "مثيلات الجهاز الافتراضي" (VM Instances)، انقر على lustre-mds1 لفتح صفحة "تفاصيل المثيل" (Instance details).

ba0bea7acdbb9527.png

انقر على المنفذ التسلسلي 1 (وحدة التحكّم) لفتح صفحة إخراج وحدة التحكّم التسلسلية. سنستخدم هذا الناتج التسلسلي لمراقبة عملية تثبيت مثيل MDS، وسننتظر إلى أن يكتمل البرنامج النصي لبدء التشغيل. انقر على الزر "إعادة تحميل" في أعلى الصفحة لتعديل الناتج التسلسلي. ستتم إعادة تشغيل العُقدة مرة واحدة للتمهيد في نواة 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، وأنّ نظام الملفات جاهز للاستخدام.

الوصول إلى مجموعة Lustre

في جلسة Cloud Shell، انقر على الزر SSH بجانب مثيل lustre-mds1 في Google Cloud Console. بدلاً من ذلك، نفِّذ الأمر التالي في Cloud Shell، مع استبدال <ZONE> بمنطقة عقدة lustre-mds1:

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

يسجّل هذا الأمر الدخول إلى الجهاز الافتراضي lustre-mds1. هذا هو مثيل خادم البيانات الوصفية (MDS) في Lustre، والذي يعمل أيضًا كمثيل خادم الإدارة (MGS) في Lustre. يتعامل هذا المثال مع جميع طلبات المصادقة والبيانات الوصفية لنظام الملفات.

لنركّب نظام الملفات على مثيل 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. لنلقِ نظرة على ما يمكننا فعله باستخدام نظام الملفات هذا.

6. جولة في أدوات Lustre CLI

إذا لم تكن على دراية بـ 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

يمكننا رؤية خادم إدارة Lustre (MGS) كالعنصر 1، وخادم بيانات وصفية Lustre (MDS) كالعنصر 3، وهدف بيانات وصفية Lustre (MDT) كالعنصر 5، وخوادم تخزين كائنات Lustre الأربعة (OSS) كالعناصر من 8 إلى 12. للتعرّف على الخدمات الأخرى، يُرجى مراجعة دليل Lustre.

أداة إعداد نظام الملفات في Lustre هي "lfs". يمكننا استخدام lfs لإدارة تقسيم الملفات على خوادم تخزين كائنات Lustre (OSS) وأهداف تخزين الكائنات (OST) الخاصة بها، بالإضافة إلى تنفيذ عمليات نظام الملفات الشائعة، مثل البحث وdf وإدارة الحصص.

تتيح لنا عملية التقسيم إعداد طريقة توزيع الملف على مجموعة Lustre لتحقيق أفضل أداء ممكن. في حين أنّ تقسيم ملف كبير على أكبر عدد ممكن من أنظمة التخزين السحابي المفتوحة المصدر (OSS) غالبًا ما يحقّق أفضل أداء من خلال تنفيذ عمليات الإدخال والإخراج بالتوازي، قد يؤدي تقسيم ملف صغير إلى أداء أسوأ مما لو تمت كتابة هذا الملف على آلة افتراضية واحدة فقط.

لاختبار ذلك، لنقم بإعداد دليلَين، أحدهما يحتوي على عدد خطوط 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/

ستظهر لك نتيجة تعرض عدد الشرائط على أنّه -1:

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

يمكننا الآن اختبار تحسينات الأداء التي يمكن تحقيقها من خلال كتابة ملف كبير مقسّم على عدة أنظمة تخزين مفتوحة المصدر.

7. Test Lustre I/O

سنجري اختبارَين بسيطَين على Lustre IO لتوضيح مزايا الأداء وقدرات التوسيع المحتملة لنظام ملفات Lustre. أولاً، سنُجري اختبارًا بسيطًا باستخدام الأداة المساعدة "dd" لكتابة ملف بحجم 5 غيغابايت في الدليل "stripe_one". نفِّذ الأمر التالي:

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

تستغرق عملية كتابة 5 غيغابايت من البيانات في نظام الملفات حوالي 27 ثانية في المتوسط، ويتم الكتابة على قرص دائم واحد (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". سيسمح هذا الإجراء لعملية الكتابة في التدفق الفردي بتوزيع عمليات الكتابة على جميع خوادم Object Storage، وإكمال عملية الكتابة في 5.5 ثانية في المتوسط، أي أسرع 4 مرات تقريبًا باستخدام أربعة خوادم Object Storage.

يستمر هذا الأداء في التحسّن عند إضافة خوادم Object Storage، ويمكنك إضافة خوادم Object Storage مع نظام الملفات على الإنترنت والبدء في تقسيم البيانات عليها لزيادة السعة والأداء على الإنترنت. تتعدّد الإمكانيات عند استخدام Lustre على Google Cloud Platform، ونتشوّق لرؤية ما يمكنك إنشاؤه والمشاكل التي يمكنك حلّها.

8. الخاتمة

تهانينا، لقد أنشأت مجموعة Lustre على Google Cloud Platform. يمكنك استخدام هذه النصوص البرمجية كنقطة بداية لإنشاء مجموعة Lustre الخاصة بك ودمجها مع مجموعة الحوسبة المستندة إلى السحابة الإلكترونية.

تنظيف عملية النشر

تسجيل الخروج من عقدة Lustre:

exit

يمكنك بسهولة تنظيف عملية النشر بعد الانتهاء من خلال تنفيذ الأمر التالي من Google Cloud Shell، بعد تسجيل الخروج من مجموعة Lustre:

gcloud deployment-manager deployments delete lustre

عندما يُطلب منك ذلك، اكتب Y للمتابعة. يمكن أن تستغرق هذه العملية بعض الوقت، لذا يُرجى الانتظار.

حذف المشروع

لإجراء عملية التنظيف، ما عليك سوى حذف مشروعك.

  • في قائمة التنقّل، اختَر "إدارة الهوية وإمكانية الوصول والمشرف"
  • ثم انقر على "الإعدادات" في القائمة الفرعية.
  • انقر على رمز سلة المهملات الذي يتضمّن النص "حذف المشروع".
  • اتّبِع التعليمات الظاهرة على الشاشة

المواضيع التي تناولناها

  • كيفية استخدام خدمة GCP Deployment Manager
  • كيفية إعداد نظام ملفات Lustre ونشره على Google Cloud
  • كيفية ضبط التقسيم واختبار وحدات الإدخال والإخراج البسيطة في نظام ملفات Lustre

الحصول على الدعم

هل تعمل على إنشاء شيء رائع باستخدام نصوص Lustre البرمجية الخاصة بأداة إدارة النشر؟ هل لديك أسئلة؟ يمكنك الدردشة معنا في مجموعة مناقشة Lustre على Google Cloud. لطلب ميزات أو تقديم ملاحظات أو الإبلاغ عن أخطاء، يُرجى استخدام هذا النموذج، أو يمكنك تعديل الرمز وإرسال طلب سحب. هل تريد التحدّث مع خبير في Google Cloud؟ يمكنك التواصل مع فريق Google Cloud اليوم من خلال الموقع الإلكتروني للحوسبة العالية الأداء في Google Cloud.

مزيد من المعلومات

الملاحظات

يُرجى إرسال ملاحظاتك حول هذا الدرس التطبيقي حول الترميز باستخدام هذا الرابط. يستغرق تقديم الملاحظات أقل من 5 دقائق. شكرًا