GCP पर Lustre Parallel File System को डिप्लॉय करें

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

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

d51beef5f729cbe9.png

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

एचपीसी सेंटर, Lustre पैरलल फ़ाइल सिस्टम जैसी टेक्नोलॉजी का इस्तेमाल करके, लंबे समय से ऑन-प्राइमिस इस ज़रूरत को पूरा कर रहे हैं. Lustre आज के सबसे लोकप्रिय ओपन सोर्स उच्च प्रदर्शन वाले मेमोरी समाधानों में से एक है और जून 2005 से, शीर्ष दस में से कम से कम आधे और दुनिया के शीर्ष 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 की चमक, अपने संगठन की मौजूदा इंफ़्रास्ट्रक्चर की परफ़ॉर्मेंस को भी उतनी ही अच्छी तरह से चलाने में सक्षम है. GCP की परफ़ॉर्मेंस इतनी अच्छी है कि साल 2019 में, यह हमारे पार्टनर DDN के साथ IO-500 स्टोरेज सिस्टम के मानदंड पर आठवें स्थान पर रहा. 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.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 Deployment Manager स्क्रिप्ट डाउनलोड करें

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

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

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

cd deploymentmanager-samples/community/lustre/

चमक के ज़रिए डिप्लॉयमेंट YAML को कॉन्फ़िगर करें

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

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 क्लस्टर का नाम, डिप्लॉय किए गए सभी संसाधनों के शुरू में जोड़ें
  • ज़ोन* - क्लस्टर को डिप्लॉय करने के लिए ज़ोन
  • cidr* - सीआईडीआर फ़ॉर्मैट में आईपी रेंज
  • external_ips* - True/False, Lustre नोड में बाहरी आईपी पते होते हैं. अगर गलत है, तो Cloud NAT को NAT गेटवे के तौर पर सेट अप कर दिया जाता है
  • vpc_net - इस फ़ील्ड और vpc_subnet फ़ील्ड को तय करें, ताकि Lustre क्लस्टर को मौजूदा VPC में डिप्लॉय किया जा सके
  • vpc_subnet - Lustre क्लस्टर को डिप्लॉय करने के लिए, मौजूदा VPC सबनेट
  • 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 - MDS/MGS बूट डिस्क के लिए उपयोग करने के लिए डिस्क प्रकार (pd-standard, pd-ssd)
  • mds_boot_disk_size_gb - GB में MDS बूट डिस्क का आकार
  • mdt_disk_type* - मेटाडेटा टारगेट (MDT) डिस्क (pd-standard, pd-ssd, local-ssd) के लिए इस्तेमाल करने के लिए डिस्क का प्रकार
  • mdt_disk_size_gb* - जीबी में MDT डिस्क का साइज़

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

  • oss_node_count* - ऑब्जेक्ट स्टोरेज सर्वर (ओएसएस) नोड की संख्या बनाने के लिए
  • oss_ip_range_start - ओएसएस नोड के लिए आईपी रेंज की शुरुआत. अगर यह जानकारी नहीं दी गई है, तो अपने-आप आईपी असाइन करने की सुविधा का इस्तेमाल करें
  • oss_machine_type - OSS नोड के लिए उपयोग करने के लिए मशीन प्रकार
  • oss_boot_disk_type - ओएसएस बूट डिस्क के लिए इस्तेमाल किया जाने वाला डिस्क टाइप (pd-standard, pd-ssd)
  • oss_boot_disk_size_gb - एमडीएस बूट डिस्क का साइज़ जीबी में
  • ost_disk_type* - ऑब्जेक्ट स्टोरेज टारगेट (ओएसटी) डिस्क के लिए इस्तेमाल किया जाने वाला डिस्क का टाइप (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 पर क्लिक करें.
  • Overview - Lustre पर क्लिक करें. डिप्लॉयमेंट प्रॉपर्टी पैनल में, डिप्लॉयमेंट का पूरा कॉन्फ़िगरेशन दिखता है.
  • कॉन्फ़िगरेशन प्रॉपर्टी में "व्यू" पर क्लिक करें. कॉन्फ़िगरेशन पैनल में, डिप्लॉयमेंट कॉन्फ़िगरेशन की उस वाईएएमएल फ़ाइल का कॉन्टेंट दिखता है जिसमें पहले बदलाव किया गया था. आगे बढ़ने से पहले, पुष्टि करें कि कॉन्टेंट सही है. अगर आपको डिप्लॉयमेंट कॉन्फ़िगरेशन में बदलाव करना है, तो "डिप्लॉयमेंट को हटाएं" में दिए गए चरणों के मुताबिक डिप्लॉयमेंट मिटाएं. इसके बाद, "Lustre डिप्लॉयमेंट YAML कॉन्फ़िगर करें" में दिए गए चरणों के मुताबिक डिप्लॉयमेंट को फिर से शुरू करें.
  • (ज़रूरी नहीं) Lustre-cluster सेक्शन में जाकर, Lustre.jinja टेंप्लेट के बनाए गए हर संसाधन पर क्लिक करें और जानकारी की समीक्षा करें.

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

aec8498e04a3c334.png

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

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

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

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

ba0bea7acdbb9527.png

सीरियल कंसोल के आउटपुट पेज को खोलने के लिए, सीरियल पोर्ट 1 (कंसोल) पर क्लिक करें. हम इस सीरियल आउटपुट का उपयोग MDS इंस्टेंस की स्थापना प्रक्रिया की निगरानी के लिए करेंगे, और स्टार्टअप-स्क्रिप्ट के पूर्ण होने तक इंतज़ार करेंगे. सीरियल आउटपुट को अपडेट करने के लिए, पेज पर सबसे ऊपर मौजूद "रीफ़्रेश करें" बटन पर क्लिक करें. 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 मेटाडेटा सर्वर (एमडीएस) इंस्टेंस है, जो Lustre मैनेजमेंट सर्वर (एमजीएस) इंस्टेंस के तौर पर भी काम करता है. यह इंस्टेंस, फ़ाइल सिस्टम के लिए पुष्टि और मेटाडेटा के सभी अनुरोधों को मैनेज करता है.

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

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

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

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

6. चमकीला सीएलआई टूल की यात्रा

अगर आपको 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 Management Server (MGS) को आइटम 1 के तौर पर, अपने Lustre Metadata Server (MDS) को आइटम 3 के तौर पर, अपने Lustre मेटाडेटा टारगेट (एमडीटी) को आइटम 5 के तौर पर, और अपने चार Lustre ऑब्जेक्ट स्टोरेज सर्वर (ओएसएस) को आइटम 8 से 12 के तौर पर देख सकते हैं. अन्य सेवाओं के बारे में जानने के लिए, कृपया Lustre मैन्युअल को देखें.

Lustre का फ़ाइल सिस्टम कॉन्फ़िगरेशन टूल "lfs" है. हम lfs का इस्तेमाल करके, अपने Lustre ऑब्जेक्ट स्टोरेज सर्वर (ओएसएस) और उनके ऑब्जेक्ट स्टोरेज टारगेट (ओएसटी) पर फ़ाइलों को स्ट्रिप करने की प्रोसेस को मैनेज कर सकते हैं. साथ ही, हम फ़ाइल सिस्टम के सामान्य ऑपरेशन, जैसे कि ढूंढें, df, और कोटा मैनेजमेंट को भी चला सकते हैं.

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

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

सहायता पाना

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

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

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

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