Ubuntu 24.04
Sponsored Link

OpenStack Caracal : Swift का उपयोग कैसे करें2024/05/22

 

यह अनुभाग दिखाता है कि ग्राहकों से Swift स्टोरेज का उपयोग कैसे करें।

यह उदाहरण निम्न प्रकार से पर्यावरण पर आधारित है।

------------+--------------------------+------------
            |                          |
        eth0|10.0.0.30             eth0|10.0.0.50
+-----------+-----------+  +-----------+-----------+
|   [ dlp.srv.world ]   |  | [ network.srv.world ] |
|     (Control Node)    |  |      (Proxy Node)     |
|                       |  |                       |
|  MariaDB    RabbitMQ  |  |      Swift Proxy      |
|  Memcached  Nginx     |  |         Nginx         |
|  Keystone   httpd     |  |                       |
+-----------------------+  +-----------------------+

------------+--------------------------+--------------------------+-----------
        eth0|10.0.0.71             eth0|10.0.0.72             eth0|10.0.0.73
+-----------+-----------+  +-----------+-----------+  +-----------+-----------+
|  [snode01.srv.world]  |  |  [snode02.srv.world]  |  |  [snode03.srv.world]  |
|    (Storage Node#1)   |  |    (Storage Node#2)   |  |    (Storage Node#3)   |
|                       |  |                       |  |                       |
|     Swift-Account     |  |     Swift-Account     |  |     Swift-Account     |
|    Swift-Container    |  |    Swift-Container    |  |    Swift-Container    |
|     Swift-Object      |  |     Swift-Object      |  |     Swift-Object      |
+-----------------------+  +-----------------------+  +-----------------------+

[1] Keystone कंट्रोल नोड पर Swift का उपयोग करने के लिए एक उपयोगकर्ता जोड़ें।
वैसे, यदि आप एक बार में Swift का उपयोग करना चाहते हैं तो नए उपयोगकर्ता को जोड़ना अनावश्यक है, Keystone पर मौजूदा व्यवस्थापक या स्विफ्ट उपयोगकर्ता के साथ इसका उपयोग करना संभव है।
# [swiftservice] प्रोजेक्ट बनाएं

root@dlp ~(keystone)#
openstack project create --domain default --description "Swift Service Project" swiftservice

+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | Swift Service Project            |
| domain_id   | default                          |
| enabled     | True                             |
| id          | d136553c649b4f8a9e7c0b23f89a1da4 |
| is_domain   | False                            |
| name        | swiftservice                     |
| options     | {}                               |
| parent_id   | default                          |
| tags        | []                               |
+-------------+----------------------------------+

# [SwiftOperator] भूमिका बनाएँ

root@dlp ~(keystone)#
openstack role create SwiftOperator

+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | None                             |
| domain_id   | None                             |
| id          | 0c53314e010f42e883b427ed521e88df |
| name        | SwiftOperator                    |
| options     | {}                               |
+-------------+----------------------------------+

# एक उपयोगकर्ता जोड़ें

root@dlp ~(keystone)#
openstack user create --domain default --project swiftservice --password userpassword swiftuser01

+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| default_project_id  | d136553c649b4f8a9e7c0b23f89a1da4 |
| domain_id           | default                          |
| enabled             | True                             |
| id                  | 56856e02fdef4188bf374356fa834775 |
| name                | swiftuser01                      |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+

# उपयोगकर्ता को [SwiftOperator] भूमिका में जोड़ें

root@dlp ~(keystone)#
openstack role add --project swiftservice --user swiftuser01 SwiftOperator
[2] यहां से और बाद में क्लाइंट पर काम करें।
पहले किसी क्लाइंट पर Keystoneclient, Swiftclient इंस्टॉल करें।
root@client:~#
apt -y install python3-openstackclient python3-keystoneclient python3-swiftclient
[3] पहले पर्यावरण चर लोड करें। (यह [1] में जोड़े गए उपयोगकर्ता के लिए मूल्य है)
ubuntu@client:~$
vi ~/keystonerc_swift
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=swiftservice
export OS_USERNAME=swiftuser01
export OS_PASSWORD=userpassword
export OS_AUTH_URL=https://dlp.srv.world:5000/v3
export OS_IDENTITY_API_VERSION=3
export PS1='\u@\h \W(swift)\$ '
ubuntu@client:~$
chmod 600 ~/keystonerc_swift

ubuntu@client:~$
source ~/keystonerc_swift

ubuntu@client ~(swift)$
echo "source ~/keystonerc_swift " >> ~/.bash_profile
# स्थिति सत्यापित करें

ubuntu@client ~(swift)$
swift stat

               Account: AUTH_d136553c649b4f8a9e7c0b23f89a1da4
            Containers: 0
               Objects: 0
                 Bytes: 0
          Content-Type: text/plain; charset=utf-8
           X-Timestamp: 1716351063.69947
       X-Put-Timestamp: 1716351063.69947
                  Vary: Accept
            X-Trans-Id: txafaeaa309ac444cdbb51d-00664d7057
X-Openstack-Request-Id: txafaeaa309ac444cdbb51d-00664d7057
[4] फ़ाइलों को सहेजने के लिए एक कंटेनर बनाएं।
ubuntu@client ~(swift)$
openstack container create test-container

+------------------------------+----------------+------------------------------+
| account                      | container      | x-trans-id                   |
+------------------------------+----------------+------------------------------+
| AUTH_d136553c649b4f8a9e7c0b2 | test-container | tx9315e0f53fac42729f52e-     |
| 3f89a1da4                    |                | 00664d7073                   |
+------------------------------+----------------+------------------------------+

ubuntu@client ~(swift)$
openstack container list

+----------------+
| Name           |
+----------------+
| test-container |
+----------------+
[5] कंटेनर में स्थानीय पर एक फ़ाइल अपलोड करें।
# [testfile.txt] अपलोड करें

ubuntu@client ~(swift)$
echo testfile > testfile.txt

ubuntu@client ~(swift)$
openstack object create test-container testfile.txt

+--------------+----------------+----------------------------------+
| object       | container      | etag                             |
+--------------+----------------+----------------------------------+
| testfile.txt | test-container | e9409172a4036cc688f169c72131e921 |
+--------------+----------------+----------------------------------+

ubuntu@client ~(swift)$
openstack object list test-container

+--------------+
| Name         |
+--------------+
| testfile.txt |
+--------------+
[6] Swift स्टोरेज से स्थानीय में एक फ़ाइल डाउनलोड करें।
ubuntu@client ~(swift)$
rm testfile.txt
ubuntu@client ~(swift)$
openstack object save test-container testfile.txt

ubuntu@client ~(swift)$
total 48
-rw------- 1 ubuntu ubuntu  286 May 22 04:10 keystonerc_swift
-rw-rw-r-- 1 ubuntu ubuntu    9 May 22 04:12 testfile.txt
[7] Swift स्टोरेज पर एक फ़ाइल हटाएँ।
ubuntu@client ~(swift)$
openstack object delete test-container testfile.txt

ubuntu@client ~(swift)$
openstack object list test-container

# [testfile.txt] हटा दिया गया है

[8] Swift स्टोरेज पर एक कंटेनर हटाएं।
ubuntu@client ~(swift)$
openstack container delete test-container

ubuntu@client ~(swift)$
openstack container list

# [test-container] हटा दिया गया है
मिलान सामग्री