Ceph Squid : Ceph ऑब्जेक्ट गेटवे2024/05/03 |
Amazon S3 या OpenStack Swift संगत एपीआई के माध्यम से Ceph क्लस्टर स्टोरेज तक पहुंचने के लिए Ceph ऑब्जेक्ट गेटवे (RADOSGW) को सक्षम करें।
यह उदाहरण निम्न प्रकार से पर्यावरण पर आधारित है। | +--------------------+ | +----------------------+ | [dlp.srv.world] |10.0.0.30 | 10.0.0.31| [www.srv.world] | | Ceph Client +-----------+-----------+ RADOSGW | | | | | | +--------------------+ | +----------------------+ +----------------------------+----------------------------+ | | | |10.0.0.51 |10.0.0.52 |10.0.0.53 +-----------+-----------+ +-----------+-----------+ +-----------+-----------+ | [node01.srv.world] | | [node02.srv.world] | | [node03.srv.world] | | Object Storage +----+ Object Storage +----+ Object Storage | | Monitor Daemon | | | | | | Manager Daemon | | | | | +-----------------------+ +-----------------------+ +-----------------------+ |
[1] | आवश्यक फ़ाइलों को RADOSGW नोड में स्थानांतरित करें और इसे व्यवस्थापक नोड से कॉन्फ़िगर करें। |
# सार्वजनिक कुंजी स्थानांतरित करें root@node01:~# ssh-copy-id www # आवश्यक पैकेज स्थापित करें root@node01:~# ssh www "apt -y install radosgw"
root@node01:~#
vi /etc/ceph/ceph.conf # अंत में जोड़ें # client.rgw.(नोड नाम) [client.rgw.www] # नोड का आईपी पता host = 10.0.0.31 # DNS नाम rgw dns name = www.srv.world keyring = /var/lib/ceph/radosgw/ceph-rgw.www/keyring log file = /var/log/ceph/radosgw.gateway.log # फ़ाइलें स्थानांतरित करें root@node01:~# scp /etc/ceph/ceph.conf www:/etc/ceph/ ceph.conf 100% 435 179.5KB/s 00:00root@node01:~# scp /etc/ceph/ceph.client.admin.keyring www:/etc/ceph/ ceph.client.admin.keyring 100% 151 84.2KB/s 00:00 # RADOSGW कॉन्फ़िगर करें
root@node01:~# ssh www \
"mkdir -p /var/lib/ceph/radosgw/ceph-rgw.www; \
ceph auth get-or-create client.rgw.www osd 'allow rwx' mon 'allow rw' -o /var/lib/ceph/radosgw/ceph-rgw.www/keyring; \
chown ceph:ceph /etc/ceph/ceph.*; \
chown -R ceph:ceph /var/lib/ceph/radosgw; \
systemctl enable --now ceph-radosgw@rgw.www"
# स्थिति सत्यापित करें # यदि निम्नलिखित उत्तर दिखाए जाएं तो यह ठीक है root@node01:~# curl www.srv.world:7480 <?xml version="1.0" encoding="UTF-8"?><ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Owner><ID>anonymous</ID><DisplayName></DisplayName></Owner><Buckets></Buckets></ListAllMyBucketsResult> |
[2] | ऑब्जेक्ट गेटवे नोड पर, एक S3 संगत उपयोगकर्ता बनाएं जो ऑब्जेक्ट गेटवे को प्रमाणित कर सके। |
# उदाहरण के लिए, [serverworld] उपयोगकर्ता बनाएं root@www:~# radosgw-admin user create --uid=serverworld --display-name="Server World" --email=admin@srv.world { "user_id": "serverworld", "display_name": "Server World", "email": "admin@srv.world", "suspended": 0, "max_buckets": 1000, "subusers": [], "keys": [ { "user": "serverworld", "access_key": "VY21Z3Q08GRPIK5G9607", "secret_key": "pV0jd8gxzA9LT9vHr762iehINEKXCpmrKRatiRAe" } ], "swift_keys": [], "caps": [], "op_mask": "read, write, delete", "default_placement": "", "default_storage_class": "", "placement_tags": [], "bucket_quota": { "enabled": false, "check_on_raw": false, "max_size": -1, "max_size_kb": 0, "max_objects": -1 }, "user_quota": { "enabled": false, "check_on_raw": false, "max_size": -1, "max_size_kb": 0, "max_objects": -1 }, "temp_url_keys": [], "type": "rgw", "mfa_ids": [] } # उपयोगकर्ता सूची दिखाएँ root@www:~# radosgw-admin user list [ "serverworld" ]root@www:~# radosgw-admin user info --uid=serverworld { "user_id": "serverworld", "display_name": "Server World", "email": "admin@srv.world", "suspended": 0, "max_buckets": 1000, "subusers": [], "keys": [ { "user": "serverworld", "access_key": "VY21Z3Q08GRPIK5G9607", "secret_key": "pV0jd8gxzA9LT9vHr762iehINEKXCpmrKRatiRAe" } ..... ..... |
[3] | कंप्यूटर पर पायथन टेस्ट स्क्रिप्ट बनाने के लिए S3 इंटरफ़ेस के साथ एक्सेस को सत्यापित करें। |
root@dlp:~#
apt -y install python3-boto3
root@dlp:~#
vi s3_test.py import sys import boto3 from botocore.config import Config # उपयोगकर्ता की एक्सेस-कुंजी और गुप्त-कुंजी जिसे आपने [2] अनुभाग में जोड़ा है session = boto3.session.Session( aws_access_key_id = 'VY21Z3Q08GRPIK5G9607', aws_secret_access_key = 'pV0jd8gxzA9LT9vHr762iehINEKXCpmrKRatiRAe' ) # ऑब्जेक्ट गेटवे URL s3client = session.client( 's3', endpoint_url = 'http://10.0.0.31:7480', config = Config() ) # [my-new-bucket] बनाएँ bucket = s3client.create_bucket(Bucket = 'my-new-bucket') # सूची Buckets print(s3client.list_buckets()) # [my-new-bucket] हटाओ s3client.delete_bucket(Bucket = 'my-new-bucket') python3 s3_test.py {'ResponseMetadata': {'RequestId': 'tx00000dd8511122036da8f-0066333427-34139-default', 'HostId': '', 'HTTPStatusCode': 200, 'HTTPHeaders': {'transfer-encoding': 'chunked', 'x-amz-request-id': 'tx00000dd8511122036da8f-0066333427-34139-default', 'content-type': 'application/xml', 'server': 'Ceph Object Gateway (squid)', 'date': 'Thu, 02 May 2024 06:35:19 GMT', 'connection': 'Keep-Alive'}, 'RetryAttempts': 0}, 'Buckets': [{'Name': 'my-new-bucket', 'CreationDate': datetime.datetime(2024, 5, 2, 6, 35, 16, 831000, tzinfo=tzlocal())}], 'Owner': {'DisplayName': 'Server World', 'ID': 'serverworld'}} |
Sponsored Link |
|