GCP पर Lustre पैरलल फ़ाइल सिस्टम को डिप्लॉय करना

1. खास जानकारी

Google Cloud Platform पर Lustre Parallel फ़ाइल सिस्टम क्लस्टर चलाने के लिए, Google Codelab में आपका स्वागत है!

d51beef5f729cbe9.png

हाई परफ़ॉर्मेंस कंप्यूटिंग के लिए डेटा का होना ज़रूरी है. एचपीसी वर्कलोड चलाने में, बहुत ज़्यादा तेज़ी और कम इंतज़ार के साथ ज़्यादा से ज़्यादा डेटा ऐक्सेस करना हमेशा से ही एक बड़ी चुनौती रही है. क्लाउड में, बेहतर परफ़ॉर्मेंस वाले स्टोरेज की ज़रूरत में कोई बदलाव नहीं हुआ है. असल में, ज़्यादा स्टोरेज को तुरंत और आसानी से इस्तेमाल करने की सुविधा अब ज़रूरी हो गई है.

एचपीसी सेंटर, Lustre पैरलल फ़ाइल सिस्टम जैसी टेक्नोलॉजी का इस्तेमाल करके, लंबे समय से ऑन-प्राइमिस इस ज़रूरत को पूरा कर रहे हैं. Lustre, आज के समय में सबसे लोकप्रिय ओपन सोर्स और बेहतर परफ़ॉर्मेंस वाले स्टोरेज सलूशन में से एक है. जून 2005 से, इसका इस्तेमाल दुनिया के टॉप 10 में से कम से कम आधे और टॉप 100 में से 60 से ज़्यादा सबसे तेज़ सुपर कंप्यूटर में लगातार किया जा रहा है. Lustre की क्षमता को सैकड़ों पीबी तक बढ़ाया जा सकता है. साथ ही, यह एचपीसी जॉब के लिए ज़्यादा से ज़्यादा परफ़ॉर्मेंस दे सकता है. इसके लिए, एक नेमस्पेस में टीबी/सेकंड का थ्रूपुट देने वाले सिस्टम का इस्तेमाल किया जाता है.

स्टोरेज की मांग को पूरा करने के लिए, Google Cloud ने दो तरीके अपनाए हैं. सबसे पहले, GCP ने DDN के साथ साझेदारी की, ताकि DDN EXAScaler Lustre सॉफ़्टवेयर को GCP Marketplace पर उपलब्ध कराया जा सके. यह सॉफ़्टवेयर, एंटरप्राइज़-क्लास के लिए उपलब्ध है. दूसरा, Google Cloud के हमारे इंजीनियरों ने स्क्रिप्ट का एक सेट तैयार किया है और उसे ओपन सोर्स के तौर पर उपलब्ध कराया है. इसकी मदद से, Google Cloud Deployment Manager का इस्तेमाल करके, Google Compute Engine पर Lustre स्टोरेज क्लस्टर को आसानी से कॉन्फ़िगर और डिप्लॉय किया जा सकता है.

Google Cloud Platform पर Lustre, उस इन्फ़्रास्ट्रक्चर की परफ़ॉर्मेंस को बेहतर बना सकता है जिस पर इसे चलाया जा रहा है. GCP पर इसकी परफ़ॉर्मेंस इतनी अच्छी है कि साल 2019 में, यह IO-500 स्टोरेज सिस्टम बेंचमार्क में आठवें स्थान पर रहा. यह परफ़ॉर्मेंस, हमारे पार्टनर DDN के साथ मिलकर हासिल की गई. यह IO-500 में, क्लाउड-आधारित फ़ाइल सिस्टम की सबसे अच्छी परफ़ॉर्मेंस है. आज हम आपको Lustre के लिए, ओपन सोर्स डिप्लॉयमेंट मैनेजर स्क्रिप्ट को डिप्लॉय करने का तरीका बताएंगे. अगर आपको एंटरप्राइज़ के लिए, बेहतर Lustre का अनुभव चाहिए, तो Lustre क्लस्टर के लिए Lustre विशेषज्ञ की सहायता के साथ-साथ, मैनेजमेंट और मॉनिटरिंग जीयूआई या Lustre ट्यूनिंग जैसी सुविधाएं भी मिल सकती हैं. हमारा सुझाव है कि आप DDN EXAScaler Marketplace की ऑफ़रिंग के बारे में जानें.

आपको क्या सीखने को मिलेगा

  • GCP Deployment Manager Service का इस्तेमाल करने का तरीका
  • GCP पर Lustre फ़ाइल सिस्टम को कॉन्फ़िगर और डिप्लॉय करने का तरीका.
  • Lustre फ़ाइल सिस्टम में स्ट्रिपिंग को कॉन्फ़िगर करने और सामान्य I/O की जांच करने का तरीका.

ज़रूरी शर्तें

  • Google Cloud Platform खाता और बिलिंग वाला प्रोजेक्ट
  • Linux का बुनियादी अनुभव

2. सेटअप

अपने हिसाब से एनवायरमेंट सेट अप करना

प्रोजेक्ट बनाना

अगर आपके पास पहले से कोई Google खाता (Gmail या G Suite) नहीं है, तो आपको एक खाता बनाना होगा. Google Cloud Platform Console ( console.cloud.google.com) में साइन इन करें और संसाधनों का पेज मैनेज करें खोलें:

359c06e07e6d699f.png

प्रोजेक्ट बनाएं पर क्लिक करें.

25c23d651abb837b.png

प्रोजेक्ट का नाम डालें. प्रोजेक्ट आईडी (ऊपर दिए गए स्क्रीनशॉट में लाल रंग से हाइलाइट किया गया है) को याद रखें. प्रोजेक्ट आईडी, Google Cloud के सभी प्रोजेक्ट के लिए यूनीक होना चाहिए. अगर आपके प्रोजेक्ट का नाम यूनीक नहीं है, तो Google Cloud प्रोजेक्ट के नाम के आधार पर कोई प्रोजेक्ट आईडी जनरेट करेगा.

इसके बाद, Google Cloud के संसाधनों का इस्तेमाल करने के लिए, आपको Developers Console में बिलिंग की सुविधा चालू करनी होगी.

इस कोडलैब को चलाने में आपको कुछ डॉलर से ज़्यादा खर्च नहीं करने पड़ेंगे. हालांकि, ज़्यादा रिसॉर्स का इस्तेमाल करने या उन्हें चालू रहने देने पर, खर्च ज़्यादा हो सकता है. इस दस्तावेज़ के आखिर में मौजूद "नतीजा" सेक्शन देखें. Google Cloud Platform की कीमत का कैलकुलेटर यहां उपलब्ध है.

Google Cloud Platform के नए उपयोगकर्ता, 300 डॉलर का क्रेडिट मुफ़्त में आज़माने की सुविधा का फ़ायदा ले सकते हैं.

Google Cloud Shell

Google Cloud को आपके लैपटॉप से रिमोट तौर पर इस्तेमाल किया जा सकता है. हालांकि, इस कोडलैब में हम Google Cloud Shell का इस्तेमाल करेंगे. यह Cloud में चलने वाला कमांड-लाइन एनवायरमेंट है.

Google Cloud Shell लॉन्च करना

GCP कंसोल में, सबसे ऊपर दाएं टूलबार में मौजूद 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 डिप्लॉयमेंट मैनेजर स्क्रिप्ट डाउनलोड करना

Cloud Shell सेशन में, उस Git रिपॉज़िटरी को क्लोन (डाउनलोड) करने के लिए यह कमांड चलाएं जिसमें Google Cloud Platform के लिए Lustre की डिप्लॉयमेंट-मैनेजर फ़ाइलें शामिल हैं:

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

Lustre डिप्लॉयमेंट कॉन्फ़िगरेशन डायरेक्ट्री पर स्विच करने के लिए, यह कमांड चलाएं:

cd deploymentmanager-samples/community/lustre/

Lustre डिप्लॉयमेंट YAML कॉन्फ़िगर करना

डिप्लॉयमेंट मैनेजर, डिप्लॉयमेंट कॉन्फ़िगरेशन देने के लिए YAML फ़ाइल का इस्तेमाल करता है. इस YAML फ़ाइल में, डिप्लॉयमेंट के कॉन्फ़िगरेशन की जानकारी होती है. जैसे, डिप्लॉय करने के लिए Lustre का वर्शन और डिप्लॉय करने के लिए मशीन इंस्टेंस टाइप. इस फ़ाइल को डिफ़ॉल्ट रूप से, किसी नए प्रोजेक्ट में डिप्लॉय करने के लिए कॉन्फ़िगर किया गया है. इसके लिए, कोटा में कोई बदलाव नहीं किया जाता. हालांकि, इस कोडलैब के लिए, मशीन का टाइप या क्षमता को अपनी पसंद के मुताबिक बदला जा सकता है. इस कोडलैब को डिफ़ॉल्ट वैल्यू का इस्तेमाल करने के लिए लिखा गया है. इसलिए, अगर आपने कोई बदलाव किया है, तो गड़बड़ियों से बचने के लिए आपको उन बदलावों को इस कोडलैब में लागू करना होगा. प्रोडक्शन में, हमारा सुझाव है कि एमडीएस नोड के लिए कम से कम 32 वीसीपी इंस्टेंस और ओएसएस नोड के लिए कम से कम 8 या 16 वीसीपी इंस्टेंस का इस्तेमाल करें. यह स्टोरेज की क्षमता और टाइप पर निर्भर करता है.

Cloud Shell सेशन में YAML फ़ाइल की समीक्षा करने या उसमें बदलाव करने के लिए, डिप्लॉयमेंट कॉन्फ़िगरेशन 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* - सीआईडीआर फ़ॉर्मैट में आईपी रेंज
  • external_ips* - True/False, Lustre नोड में बाहरी आईपी पते होते हैं. अगर यह 'गलत है' पर सेट है, तो Cloud NAT को NAT गेटवे के तौर पर सेट अप किया जाता है
  • vpc_net - किसी मौजूदा वीपीसी में Lustre क्लस्टर को डिप्लॉय करने के लिए, इस फ़ील्ड और vpc_subnet फ़ील्ड की जानकारी दें
  • vpc_subnet - Lustre क्लस्टर को डिप्लॉय करने के लिए मौजूदा वीपीएन सबनेट
  • shared_vpc_host_proj - शेयर किए गए VPC में क्लस्टर को डिप्लॉय करने के लिए, इस फ़ील्ड के साथ-साथ vpc_net और vpc_subnet फ़ील्ड की जानकारी दें

फ़ाइल सिस्टम का कॉन्फ़िगरेशन

  • fs_name - Lustre फ़ाइल सिस्टम का नाम
  • lustre_version - डिप्लॉय करने के लिए Lustre का वर्शन, https://downloads.whamcloud.com/public/lustre/ से नया ब्रैंच डिप्लॉय करने के लिए "latest-release" का इस्तेमाल करें या किसी दूसरे वर्शन को डिप्लॉय करने के लिए lustre-X.X.X का इस्तेमाल करें
  • 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 - एमडीएस/एमजीएस बूट डिस्क के लिए इस्तेमाल किया जाने वाला डिस्क टाइप (pd-standard, pd-ssd)
  • mds_boot_disk_size_gb - एमडीएस बूट डिस्क का साइज़ जीबी में
  • mdt_disk_type* - मेटाडेटा टारगेट (एमडीटी) डिस्क के लिए इस्तेमाल किया जाने वाला डिस्क टाइप (pd-standard, pd-ssd, local-ssd)
  • mdt_disk_size_gb* - एमडीटी डिस्क का साइज़ जीबी में

ओएसएस कॉन्फ़िगरेशन

  • oss_node_count* - ऑब्जेक्ट स्टोरेज सर्वर (ओएसएस) के नोड बनाने की संख्या
  • oss_ip_range_start - OSS नोड के लिए आईपी रेंज की शुरुआत. अगर यह जानकारी नहीं दी गई है, तो अपने-आप आईपी असाइन करने की सुविधा का इस्तेमाल करें
  • oss_machine_type - ओएसएस नोड के लिए इस्तेमाल की जाने वाली मशीन का टाइप
  • oss_boot_disk_type - ओएसएस बूट डिस्क के लिए इस्तेमाल किया जाने वाला डिस्क टाइप (pd-standard, pd-ssd)
  • oss_boot_disk_size_gb - एमडीएस बूट डिस्क का साइज़ जीबी में
  • ost_disk_type* - ऑब्जेक्ट स्टोरेज टारगेट (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 Console में डिप्लॉयमेंट देखने के लिए, यह तरीका अपनाएं:

  • Cloud Platform Console में, सबसे ऊपर बाएं कोने में मौजूद प्रॉडक्ट और सेवाएं मेन्यू (तीन हॉरिज़ॉन्टल लाइन) खोलें.
  • डिप्लॉयमेंट मैनेजर पर क्लिक करें.
  • डिप्लॉयमेंट की जानकारी देखने के लिए, Lustre पर क्लिक करें.
  • खास जानकारी - Lustre पर क्लिक करें. डिप्लॉयमेंट प्रॉपर्टी पैनल, डिप्लॉयमेंट का पूरा कॉन्फ़िगरेशन दिखाता है.
  • Config प्रॉपर्टी पर, "देखें" पर क्लिक करें. कॉन्फ़िगरेशन पैनल में, डिप्लॉयमेंट कॉन्फ़िगरेशन की उस वाईएएमएल फ़ाइल का कॉन्टेंट दिखता है जिसमें पहले बदलाव किया गया था. आगे बढ़ने से पहले, पुष्टि करें कि कॉन्टेंट सही है. अगर आपको डिप्लॉयमेंट कॉन्फ़िगरेशन में बदलाव करना है, तो "डिप्लॉयमेंट को हटाएं" में दिए गए चरणों के मुताबिक डिप्लॉयमेंट मिटाएं. इसके बाद, "Lustre डिप्लॉयमेंट YAML कॉन्फ़िगर करें" में दिए गए चरणों के मुताबिक डिप्लॉयमेंट को फिर से शुरू करें.
  • (ज़रूरी नहीं) Lustre-cluster सेक्शन में, Lustre.jinja टेंप्लेट से बनाए गए हर संसाधन पर क्लिक करें और जानकारी देखें.

डिप्लॉयमेंट के कॉन्फ़िगरेशन की पुष्टि हो जाने के बाद, क्लस्टर के इंस्टेंस के शुरू होने की पुष्टि करें. Cloud Platform कंसोल में, प्रॉडक्ट और सेवाएं मेन्यू में जाकर, Compute Engine > VM इंस्टेंस पर क्लिक करें.

aec8498e04a3c334.png

VM इंस्टेंस पेज पर, डिप्लॉयमेंट मैनेजर से बनाए गए पांच वर्चुअल मशीन इंस्टेंस की समीक्षा करें. इसमें lustre-mds1, lustre-oss1, lustre-oss2, lustre-oss3, और lustre-oss4 शामिल हैं.

5. Lustre क्लस्टर को ऐक्सेस करना

इंस्टॉलेशन को मॉनिटर करना

इंस्टेंस की जानकारी वाला पेज खोलने के लिए, VM इंस्टेंस पेज पर, lustre-mds1 पर क्लिक करें.

ba0bea7acdbb9527.png

सीरियल कंसोल आउटपुट पेज खोलने के लिए, सीरियल पोर्ट 1 (कंसोल) पर क्लिक करें. हम एमडीएस इंस्टेंस के इंस्टॉलेशन की प्रोसेस को मॉनिटर करने के लिए, इस सीरियल आउटपुट का इस्तेमाल करेंगे. साथ ही, स्टार्टअप-स्क्रिप्ट पूरी होने तक इंतज़ार करेंगे. सीरियल आउटपुट अपडेट करने के लिए, पेज पर सबसे ऊपर मौजूद "रीफ़्रेश करें" बटन पर क्लिक करें. Lustre kernel में बूट करने के लिए, नोड एक बार रीबूट होगा और नीचे दिए गए मैसेज दिखाएगा:

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 सेशन में, Google Cloud Console में lustre-mds1 इंस्टेंस के बगल में मौजूद एसएसएच बटन पर क्लिक करें. इसके अलावा, Cloud Shell में यह कमांड चलाएं. इसके लिए, lustre-mds1 नोड के ज़ोन के लिए <ZONE> का इस्तेमाल करें:

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

यह कमांड, lustre-mds1 वर्चुअल मशीन में लॉग इन करता है. यह Lustre मेटाडेटा सर्वर (MDS) इंस्टेंस है, जो Lustre मैनेजमेंट सर्वर (MGS) इंस्टेंस के तौर पर भी काम करता है. यह इंस्टेंस, फ़ाइल सिस्टम के लिए पुष्टि और मेटाडेटा के सभी अनुरोधों को मैनेज करता है.

आइए, फ़ाइल सिस्टम को अपने lustre-mds1 इंस्टेंस पर माउंट करें, ताकि बाद में इसकी जांच की जा सके. नीचे दिए गए कमांड चलाएं:

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

ये तीन निर्देश तीन काम करते हैं. पहला निर्देश, एक लोकल डायरेक्ट्री बनाता है. इसका इस्तेमाल, "/mnt/lustre" पर माउंट पॉइंट के तौर पर किया जाएगा. दूसरा कमांड, "lustre" टाइप के फ़ाइल सिस्टम को माउंट करने के लिए "mount" कमांड चलाता है. यह फ़ाइल सिस्टम, lustre-mds1 सर्वर पर मौजूद होता है. साथ ही, फ़ाइल सिस्टम का नाम "lustre" होता है, जिसे "/lustre" के तौर पर देखा जाता है. माउंट कमांड, Lustre फ़ाइल सिस्टम को आपकी लोकल "/mnt/lustre" डायरेक्ट्री में माउंट करता है. आखिर में, तीसरा कमांड डायरेक्ट्री को /mnt/lustre डायरेक्ट्री में बदल देता है, जहां Lustre माउंट किया गया है.

अब आपने Lustre फ़ाइल सिस्टम को /mnt/lustre पर माउंट कर लिया है. आइए, देखते हैं कि इस फ़ाइल सिस्टम की मदद से क्या-क्या किया जा सकता है.

6. Lustre सीएलआई टूल के बारे में जानकारी

अगर आपको Lustre और इसके टूल के बारे में जानकारी नहीं है, तो हम यहां कुछ ज़रूरी निर्देशों के बारे में बताएंगे.

Lustre का लो-लेवल क्लस्टर मैनेजमेंट टूल "lctl" है. Lustre क्लस्टर को कॉन्फ़िगर और मैनेज करने के साथ-साथ, Lustre क्लस्टर की सेवाएं देखने के लिए, lctl का इस्तेमाल किया जा सकता है. हमारे नए 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 ऑब्जेक्ट स्टोरेज सर्वर (ओएसएस) और उनके ऑब्जेक्ट स्टोरेज टारगेट (ओएसटी) पर फ़ाइलों को स्ट्रिप करने की प्रोसेस को मैनेज कर सकते हैं. साथ ही, हम फ़ाइल सिस्टम के सामान्य ऑपरेशन, जैसे कि ढूंढें, df, और कोटा मैनेजमेंट को भी चला सकते हैं.

स्ट्रिपिंग की मदद से, हम यह कॉन्फ़िगर कर सकते हैं कि Lustre क्लस्टर में किसी फ़ाइल को कैसे डिस्ट्रिब्यूट किया जाए, ताकि सबसे अच्छी परफ़ॉर्मेंस मिल सके. किसी बड़ी फ़ाइल को ज़्यादा से ज़्यादा ओएसएस पर स्ट्रिप करने से, अक्सर आईओ को पैरलल कराने की वजह से बेहतर परफ़ॉर्मेंस मिलती है. हालांकि, किसी छोटी फ़ाइल को स्ट्रिप करने से, उसकी परफ़ॉर्मेंस उस फ़ाइल की तुलना में खराब हो सकती है जिसे सिर्फ़ एक इंस्टेंस में लिखा गया हो.

इसकी जांच करने के लिए, दो डायरेक्ट्री सेट अप करें. एक डायरेक्ट्री में स्ट्रिप की संख्या एक ओएसएस और दूसरी डायरेक्ट्री में स्ट्रिप की संख्या "-1" होनी चाहिए. इससे पता चलता है कि उस डायरेक्ट्री में मौजूद फ़ाइलों को ज़्यादा से ज़्यादा ओएसएस में स्ट्रिप किया जाना चाहिए. डायरेक्ट्री में स्ट्रिपिंग कॉन्फ़िगरेशन हो सकते हैं. ये कॉन्फ़िगरेशन, डायरेक्ट्री में बनाई गई फ़ाइलों को इनहेरिट करते हैं. हालांकि, अगर ज़रूरत हो, तो डायरेक्ट्री में मौजूद सब-डायरेक्ट्री और अलग-अलग फ़ाइलों को अलग-अलग तरह से स्ट्रिप करने के लिए कॉन्फ़िगर किया जा सकता है. ये दो डायरेक्ट्री बनाने के लिए, "/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. Lustre I/O की जांच करना

हम Lustre फ़ाइल सिस्टम की परफ़ॉर्मेंस के संभावित फ़ायदों और स्केलिंग की क्षमताओं को दिखाने के लिए, Lustre IO के दो आसान टेस्ट चलाएंगे. सबसे पहले, हम "dd" यूटिलिटी का इस्तेमाल करके एक आसान टेस्ट चलाएंगे. इससे, हम अपनी "stripe_one" डायरेक्ट्री में 5 जीबी की फ़ाइल लिख पाएंगे. यह कमांड चलाएं:

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

फ़ाइल सिस्टम में 5 जीबी डेटा लिखने में औसतन 27 सेकंड लगते हैं. यह डेटा, किसी एक ऑब्जेक्ट स्टोरेज सर्वर (ओएसएस) पर मौजूद किसी एक पर्सिस्टेंट डिस्क (पीडी) में लिखा जाता है.

कई ओएसएस और इसलिए कई पीडी में स्ट्रिपिंग की जांच करने के लिए, हमें सिर्फ़ उस आउटपुट डायरेक्ट्री को बदलना होगा जिसमें हम लिखते हैं. यह कमांड चलाएं:

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

ध्यान दें कि हमने "of=stripe_one/test" को "of=stripe_all/test" में बदल दिया है. इससे, हमारी एक स्ट्रीम में डेटा लिखने की प्रोसेस, हमारे सभी ऑब्जेक्ट स्टोरेज सर्वर पर डेटा लिखने की प्रोसेस को डिस्ट्रिब्यूट कर पाएगी. साथ ही, डेटा लिखने की प्रोसेस औसतन 5.5 सेकंड में पूरी हो जाएगी. चार ओएसएस के साथ, यह प्रोसेस चार गुना ज़्यादा तेज़ी से पूरी होगी.

ऑब्जेक्ट स्टोरेज सर्वर जोड़ने पर, यह परफ़ॉर्मेंस लगातार बढ़ती रहती है. साथ ही, ऑनलाइन फ़ाइल सिस्टम के साथ ओएसएस जोड़े जा सकते हैं. साथ ही, ऑनलाइन क्षमता और परफ़ॉर्मेंस बढ़ाने के लिए, उनमें डेटा को स्ट्रिप करना शुरू किया जा सकता है. Google Cloud Platform पर Lustre का इस्तेमाल करके, कई काम किए जा सकते हैं. हमें यह देखने में खुशी होगी कि आपने क्या बनाया और किन समस्याओं को हल किया.

8. नतीजा

बधाई हो, आपने Google Cloud Platform पर Lustre क्लस्टर बना लिया है! इन स्क्रिप्ट का इस्तेमाल, अपना Lustre क्लस्टर बनाने और उसे क्लाउड-आधारित कंप्यूटिंग क्लस्टर के साथ इंटिग्रेट करने के लिए किया जा सकता है.

डिप्लॉयमेंट को हटाना

Lustre नोड से लॉग आउट करें:

exit

Lustre क्लस्टर से लॉग आउट करने के बाद, Google Cloud Shell में यह कमांड चलाकर, डिप्लॉयमेंट को आसानी से हटाया जा सकता है:

gcloud deployment-manager deployments delete lustre

जब कहा जाए, तब जारी रखने के लिए Y टाइप करें. इस प्रोसेस में कुछ समय लग सकता है. कृपया इंतज़ार करें.

प्रोजेक्ट मिटाना

डेटा मिटाने के लिए, हम अपने प्रोजेक्ट को मिटा देते हैं.

  • नेविगेशन मेन्यू में, IAM और एडमिन चुनें
  • इसके बाद, सब-मेन्यू में सेटिंग पर क्लिक करें
  • "प्रोजेक्ट मिटाएं" टेक्स्ट वाले ट्रैशबिन आइकॉन पर क्लिक करें
  • प्रॉम्प्ट में दिए गए निर्देशों का पालन करें

हमने क्या-क्या कवर किया है

  • GCP Deployment Manager Service का इस्तेमाल करने का तरीका.
  • GCP पर Lustre फ़ाइल सिस्टम को कॉन्फ़िगर और डिप्लॉय करने का तरीका.
  • Lustre फ़ाइल सिस्टम में स्ट्रिपिंग को कॉन्फ़िगर करने और सामान्य I/O की जांच करने का तरीका.

सहायता पाना

क्या Lustre डिप्लॉयमेंट मैनेजर स्क्रिप्ट का इस्तेमाल करके, कुछ शानदार काम किया जा रहा है? कोई सवाल पूछना चाहते हैं? Google Cloud Lustre के चर्चा ग्रुप में हमारे साथ चैट करें. सुविधाओं का अनुरोध करने, सुझाव देने या गड़बड़ियों की शिकायत करने के लिए, कृपया इस फ़ॉर्म का इस्तेमाल करें. इसके अलावा, कोड में बदलाव करके, पूल का अनुरोध भी सबमिट किया जा सकता है! क्या आपको Google Cloud के विशेषज्ञ से बात करनी है? Google Cloud की हाई परफ़ॉर्मेंस कंप्यूटिंग वेबसाइट पर जाकर, आज ही Google Cloud की टीम से संपर्क करें.

ज़्यादा जानें

सुझाव/राय दें या शिकायत करें

कृपया इस लिंक का इस्तेमाल करके, इस कोडलैब के बारे में सुझाव/राय दें या शिकायत करें. सुझाव, शिकायत या राय देने में पांच मिनट से भी कम समय लगता है. धन्यवाद!