Ini mencakup komponen-komponen berikut:
Proxy servers (swift-proxy-server)
Menerima OpenStack Obyek Storage API dan permintaan HTTP baku untuk meng-upload file, memodifikasi metadata, dan menciptakan containers. Hal ini juga melayani file atau ‘containers listing’ untuk web browser. Untuk meningkatkan kinerja, proxy server dapat menggunakan cache opsional yang biasanya dikerahkan dengan ‘memcache’.
Account servers (swift-account-server)
Mengelola akun yang didefinisikan dengan Object Storage.
Container servers (swift-container-server)
Mengelola pemetaan container atau pemetaan folder, dalam Object Storage.
Object servers (swift-object-server)
Mengelola objek yang sebenarnya, seperti file, pada node penyimpanan.
Berbagai proses periodik
Melakukan tugas-tugas housekeeping di penyimpanan data yang besar. Layanan replikasi memastikan konsistensi dan ketersediaan melalui cluster. Proses berkala lainnya termasuk auditor, updaters, dan ‘reaper’.
WSGI middleware
Menangani otentikasi dan OpenStack Identity biasa.
swift client
Memungkinkan user untuk mengirimkan perintah ke REST API melalui klien command-line resmi baik sebagai ‘admin user’, ‘reseller user’, atau ‘swift user’.
swift-init
Membuat script yang menginisialisasi pembangunan ‘ring file’, mengambil nama daemon sebagai parameter dan menawarkan command. Didokumentasikan dalam http://docs.openstack.org/developer/swift/admin_guide.html#managing-services.
swift-recon
Sebuah alat CLI digunakan untuk mengambil berbagai metrik dan telemetri informasi tentang cluster yang telah dikumpulkan oleh middleware swift-recon.
swift-ring-builder
‘Storage ring build and rebalance utility’. Didokumentasikan dalam http://docs.openstack.org/developer/swift/admin_guide.html#managing-the-rings.
#LAB 35 Menginstal dan mengkonfigurasi Object Storage pada ‘controller node’
Bagian ini menjelaskan cara menginstal dan mengkonfigurasi layanan proxy yang menangani permintaan untuk layanan akun, container, dan object yang beroperasi pada storage nodes. Untuk mempermudah, panduan ini akan menginstal dan mengkonfigurasi layanan proxy pada ‘controller node’. Namun, kamu dapat menjalankan layanan proxy pada setiap node dengan konektivitas jaringan ke ‘storage node’. Selain itu, kamu dapat menginstal dan mengkonfigurasi layanan proxy pada beberapa node untuk meningkatkan kinerja dan redundansi. Untuk informasi lebih lanjut, lihat Deployment Guide.
Layanan proxy bergantung pada mekanisme otentikasi dan otorisasi seperti layanan Identity. Namun, tidak seperti layanan lain, dia juga menawarkan mekanisme internal yang memungkinkan untuk beroperasi tanpa layanan OpenStack lainnya. Namun, untuk kesederhanaan, panduan ini referensi layanan Identitas di :doc: keystone. Sebelum kamu mengkonfigurasi layanan Object Storage, kamu harus membuat kredensial layanan dan endpoint API.
Catatan
Layanan Object Storage tidak menggunakan database SQL pada ‘controller node’. Sebaliknya, menggunakan database SQLite didistribusikan pada setiap ‘storage node’.
Dapatkan sumber mandat admin untuk mendapatkan akses ke command CLI ‘admin-only’:
$ source admin-openrcUntuk membuat kredensial layanan Identity, selesaikan langkah-langkah ini:
Buat user swift:
$ openstack user create --domain default --password-prompt swift
Tambahkan peran admin ke user swift:
$ openstack role add --project service --user swift admin
Buat entitas layanan swift:
Buat endpoints API pada layanan Object Storage :
$ openstack endpoint create --region RegionOne \
object-store public http://controller:8080/v1/AUTH_%\(tenant_id\)s
$ openstack endpoint create --region RegionOne \
object-store internal http://controller:8080/v1/AUTH_%\(tenant_id\)s
$ openstack endpoint create --region RegionOne \
object-store admin http://controller:8080/v1
#LAB 36 Instal dan konfigurasi komponen swift
Instal paket:
# apt-get install swift swift-proxy python-swiftclient \Catatan
python-keystoneclient python-keystonemiddleware \
memcached
Lengkapi environtment OpenStack sudah termasuk beberapa paket ini.
Buat direktore /etc/swift.
Dapatkan file konfigurasi pada layanan proxy dari repositori sumber Object Storage:
# curl -o /etc/swift/proxy-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/proxy-server.conf-sample?h=stable/liberty
Edit terlebih dahulu file /etc/swift/proxy-server.conf dan ikuti langkah dibawah ini:
nano /etc/swift/proxy-server.confpada bagian [DEFAULT], konfigurasi ‘bind port’, user, dan ‘configuration directory’:
[DEFAULT]
...
bind_port = 8080
user = swift
swift_dir = /etc/swift
pada bagian [pipeline:main], hapus modul tempurl dan tempauth dan tambahkan modul authtoken dan keystoneauth
[pipeline:main]Catatan
pipeline = catch_errors gatekeeper healthcheck proxy-logging cache
container_sync bulk ratelimit authtoken keystoneauth container-quotas
account-quotas slo dlo versioned_writes proxy-logging proxy-server
Jangan mengubah urutan modul.
pada bagian [app: proxy server], aktifkan pembuatan akun otomatis:
[app:proxy-server]
use = egg:swift#proxy
...
account_autocreate = true
pada bagian [filter: authkeystone], konfigurasi peran operator:
[filter:keystoneauth]
use = egg:swift#keystoneauth
...
operator_roles = admin,user
pada bagian [filter: authtoken], konfigurasi akses layanan Identity:
[filter:authtoken]
paste.filter_factory = keystonemiddleware.auth_token:filter_factory
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
project_name = service
username = swift
password = SWIFT_PASS
delay_auth_decision = true
Ganti SWIFT_PASS dengan password yang kamu buat untuk user swift dalam pelayanan Identity.
Hapus komentar atau bahkan menghapus opsi lain dalam bagian [filter:authtoken].
pada bagian [filter: cache], konfigurasi lokasi memcached:
[filter:cache]
use = egg:swift#memcache
...
memcache_servers = 127.0.0.1:11211
#LAB 37 Menginstal dan mengkonfigurasi node penyimpanan (Swift)
Bagian ini menjelaskan cara menginstal dan mengkonfigurasi node penyimpanan yang mengoperasikan layanan akun, kontainer, dan objek. Untuk mempermudah, konfigurasi ini me-referensi dua node penyimpanan, masing-masing berisi dua perangkat penyimpanan blok lokal kosong. Petunjuk menggunakan /dev/sdb dan /dev/sdc, tetapi kamu dapat mengganti nilai yang berbeda untuk node tertentu.
Meskipun Object Storage mendukung sistem file dengan extended attributes (xattr), pengujian dan benchmarking menunjukkan performa dan kehandalan terbaik pada :term: XFS. Untuk informasi lebih lanjut tentang lingkungan skala secara horizontal.
Sebelum kamu menginstal dan mengkonfigurasi layanan Object Storage pada node penyimpanan, kamu harus mempersiapkan perangkat penyimpanan.
Catatan
Lakukan langkah ini pada setiap node penyimpanan.
Instal paket utilitas pendukung:
# apt-get install xfsprogs rsyncFormatlah perangkat /dev/sdb dan /dev/sdc sebagai XFS:
# mkfs.xfs /dev/sdbBuat struktur direktori ‘mount point’:
# mkfs.xfs /dev/sdc
# mkdir -p /srv/node/sdbEdit file /etc/fstab dan tambahkan berikut untuk itu:
# mkdir -p /srv/node/sdc
/dev/sdb /srv/node/sdb xfs noatime,nodiratime,nobarrier,logbufs=8 0 2Mount perangkat:
/dev/sdc /srv/node/sdc xfs noatime,nodiratime,nobarrier,logbufs=8 0 2
# mount /srv/node/sdbBuat atau edit file /etc/rsyncd.conf mengandung berikut:
# mount /srv/node/sdc
uid = swift
gid = swift
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
address = MANAGEMENT_INTERFACE_IP_ADDRESS
[account]
max connections = 2
path = /srv/node/
read only = False
lock file = /var/lock/account.lock
[container]
max connections = 2
path = /srv/node/
read only = False
lock file = /var/lock/container.lock
[object]
max connections = 2
path = /srv/node/
read only = False
lock file = /var/lock/object.lock
Ganti MANAGEMENT_INTERFACE_IP_ADDRESS dengan alamat IP dari jaringan manajemen pada node penyimpanan.
Catatan
Layanan rsync tidak memerlukan otentikasi, jadi pertimbangkan menjalankannya pada jaringan private dalam lingkungan produksi.
Edit file /etc/default/rsync dan mengaktifkan layanan rsync:
nano /etc/default/rsync
RSYNC_ENABLE=true
Mulai layanan rsync:
# service rsync start
Instal dan konfigurasi komponen
Catatan
Lakukan langkah ini pada setiap node penyimpanan.
Instal paket:
Dapatkan file konfigurasi layanan accounting, container, dan object, dari repositori sumber di Object Storage:
# apt-get install swift swift-account swift-container swift-object
# curl -o /etc/swift/account-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/account-server.conf-sample?h=stable/liberty
# curl -o /etc/swift/container-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/container-server.conf-sample?h=stable/liberty
# curl -o /etc/swift/object-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/object-server.conf-sample?h=stable/liberty
Edit file /etc/swift/account-server.conf dan selesaikan langkah berikut:
nano /etc/swift/account-server.confpada bagian [DEFAULT], konfigurasikan ‘bind IP address’, ‘bind port’, user, ‘configuration directory’, dan ‘mount point directory’:
[DEFAULT]
...
bind_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
bind_port = 6002
user = swift
swift_dir = /etc/swift
devices = /srv/node
mount_check = True
Ganti MANAGEMENT_INTERFACE_IP_ADDRESS dengan alamat IP dari jaringan manajemen pada node penyimpanan.
pada bagian [pipeline:main], mengaktifkan modul yang tepat:
[pipeline:main]
pipeline = healthcheck recon account-server
pada bagian [filter:recon], konfigurasikan ‘recon (meters) cache directory’:
[filter:recon]
use = egg:swift#recon
...
recon_cache_path = /var/cache/swift
Edit file /etc/swift/container-server.conf dan selesaikan langkahberikut:
nano /etc/swift/container-server.confpada bagian DEFAULT] , konfigurasikan ‘bind IP address’, ‘bind port’, user, ‘configuration directory’, dan ‘mount point directory’:
[DEFAULT]
...
bind_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
bind_port = 6001
user = swift
swift_dir = /etc/swift
devices = /srv/node
mount_check = True
Ganti MANAGEMENT_INTERFACE_IP_ADDRESS dengan alamat IP dari jaringan manajemen pada node penyimpanan.
pada bagian [pipeline:main], mengaktifkan modul yang tepat:
[pipeline:main]
pipeline = healthcheck recon container-server
pada bagian [filter:recon], konfigurasikan ‘recon (meters) cache directory’:
[filter:recon]
use = egg:swift#recon
recon_cache_path = /var/cache/swift
Edit file /etc/swift/object-server.conf dan selesaikan langkah berikut:
nano /etc/swift/object-server.confpada bagian [DEFAULT], konfigurasikan ‘bind IP address’, ‘bind port’, user, ‘configuration directory’, dan ‘mount point directory’:
[DEFAULT]
...
bind_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
bind_port = 6000
user = swift
swift_dir = /etc/swift
devices = /srv/node
mount_check = True
Ganti MANAGEMENT_INTERFACE_IP_ADDRESS dengan alamat IP dari jaringan manajemen pada node penyimpanan.
pada bagian [pipeline:main], mengaktifkan modul yang tepat:
[pipeline:main]
pipeline = healthcheck recon object-server
pada bagian [filter:recon], konfigurasikan ‘recon (meters) cache’ dan ‘lock directories’:
[filter:recon]
use = egg:swift#recon
...
recon_cache_path = /var/cache/swift
recon_lock_path = /var/lock
Pastikan kepemilikan tepat strukture direktori ‘mount point’:
# chown -R swift:swift /srv/nodeBuat direktori recon dan pastikan kepemilikan tepat itu:
# mkdir -p /var/cache/swift#LAB 38 Mengeclone dan Mengkonfigurasi Swift2
# chown -R root:swift /var/cache/swift
#LAB 39 Membuat dan Mendistribusikan initial ring
Sebelum memulai layanan Object Storage, kamu harus membuat initial akun, container, dan object ring. Pembangun ring membuat file konfigurasi dimana setiap node berguna untuk menentukan dan mengerahkan arsitektur penyimpanan. Untuk mempermudah, panduan ini menggunakan satu wilayah dan dua zona dengan 2 ^ 10 (1024) partisi maksimum, 3 replika setiap objek, dan 1 jam waktu minimum antara pergerakan satu partisi lebih dari sekali. Untuk Object Storage, partisi menunjukkan direktori pada perangkat penyimpanan bukan pada tabel partisi konvensional.
Catatan
Lakukan langkah ini pada controller node.
membuat akun ring
Server akun menggunakan akun ring untuk mempertahankan daftar kontainer.
pindah ke directory /etc/swift.
cd /etc/swiftBuat file basis account.builder:
# swift-ring-builder account.builder create 10 3 1
Tambahkan setiap node penyimpanan untuk ring:
# swift-ring-builder account.builder \
add --region 1 --zone 1 --ip
STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS --port 6002 \Ganti STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS dengan alamat IP dari jaringan manajemen pada node penyimpanan. Ganti DEVICE_NAME dengan nama perangkat penyimpanan pada node penyimpanan yang sama. Misalnya, menggunakan node penyimpanan pertama di Menginstal dan mengkonfigurasi node penyimpanan ganti dengan perangkat penyimpanan /dev/sdb dan ‘weight of 100’:
--device DEVICE_NAME --weight DEVICE_WEIGHT
# swift-ring-builder account.builder add \Ulangi command ini untuk setiap perangkat penyimpanan pada setiap node penyimpanan. Pada arsitektur contoh gunakan command dalam empat variasi:
--region 1 --zone 1 --ip 10.0.0.40 --port 6002 --device sdb --weight 100
# swift-ring-builder account.builder add \
--region 1 --zone 1 --ip 10.0.0.40 --port 6002 --device sdb --weight 100
# swift-ring-builder account.builder add \
--region 1 --zone 1 --ip 10.0.0.40 --port 6002 --device sdc --weight 100
# swift-ring-builder account.builder add \
--region 1 --zone 2 --ip 10.0.0.41 --port 6002 --device sdb --weight 100
# swift-ring-builder account.builder add \
--region 1 --zone 2 --ip 10.0.0.41 --port 6002 --device sdc --weight 100
Memverifikasi ring content:
# swift-ring-builder account.builder
Rebalance ring:
# swift-ring-builder account.builder rebalance
Server kontainer menggunakan ‘container ring’ untuk mempertahankan daftar objek. Namun, tidak melacak lokasi objek.
Ubah ke directory /etc/swift.
cd /etc/swift
Buat file dasar container.builder:
# swift-ring-builder container.builder create 10 3 1
Tambahkan setiap node penyimpanan untuk ring:
# swift-ring-builder container.builder \
add --region 1 --zone 1 --ip STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS --port 6001 \
--device DEVICE_NAME --weight DEVICE_WEIGHT
Ganti STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS dengan alamat IP dari jaringan manajemen pada node penyimpanan. Ganti DEVICE_NAME dengan nama perangkat penyimpanan pada node penyimpanan yang sama. Misalnya, menggunakan node penyimpanan pertama di Menginstal dan mengkonfigurasi node penyimpanan ganti dengan perangkat penyimpanan /dev/sdb dan ‘weight of 100’:
Ulangi command ini untuk setiap perangkat penyimpanan pada setiap node penyimpanan. Pada arsitektur contoh gunakan command dalam empat variasi:
# swift-ring-builder container.builder add \
--region 1 --zone 1 --ip 10.0.0.40 --port 6001 --device sdb --weight 100
# swift-ring-builder container.builder add \
--region 1 --zone 1 --ip 10.0.0.40 --port 6001 --device sdb --weight 100
Memverifikasi ring content:
# swift-ring-builder container.builderRebalance ring:
# swift-ring-builder container.builder rebalance
Reassigned 1024 (100.00%) partitions. Balance is now 0.00. Dispersion is now 0.00
Buat object ring
Server objek menggunakan ‘object ring’ untuk mempertahankan daftar lokasi objek pada perangkat lokal.
Ubah ke directory /etc/swift.
Buat file dasar object.builder:
# swift-ring-builder object.builder create 10 3 1
Catatan
10.0.0.51 itu salah pencet,
Tambahkan setiap node penyimpanan untuk ring:
# swift-ring-builder object.builder \Ganti STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS dengan alamat IP dari jaringan manajemen pada node penyimpanan. Ganti DEVICE_NAME dengan nama perangkat penyimpanan pada node penyimpanan yang sama. Misalnya, menggunakan node penyimpanan pertama di Menginstal dan mengkonfigurasi node penyimpanan ganti dengan perangkat penyimpanan /dev/sdb dan ‘weight of 100’:
add --region 1 --zone 1 --ip STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS --port 6000 \
--device DEVICE_NAME --weight DEVICE_WEIGHT
# swift-ring-builder object.builder add \Ulangi command ini untuk setiap perangkat penyimpanan pada setiap node penyimpanan. Pada arsitektur, contoh gunakan command dalam empat variasi:
--region 1 --zone 1 --ip 10.0.0.40 --port 6000 --device sdb --weight 100
# swift-ring-builder object.builder add \Memverifikasi ring content:
--region 1 --zone 1 --ip 10.0.0.40 --port 6000 --device sdb --weight 100
# swift-ring-builder object.builder add \
--region 1 --zone 1 --ip 10.0.0.40 --port 6000 --device sdc --weight 100
# swift-ring-builder object.builder add \
--region 1 --zone 2 --ip 10.0.0.41 --port 6000 --device sdb --weight 100
# swift-ring-builder object.builder add \
--region 1 --zone 2 --ip 10.0.0.41 --port 6000 --device sdc --weight 100
# swift-ring-builder object.builder
Rebalance ring:
# swift-ring-builder object.builder rebalance
Mendistribusikan file konfigurasi ring
Salin file account.ring.gz, container.ring.gz, dan object.ring.gz ke direktori /etc/swift pada setiap node penyimpanan dan setiap node tambahan yang menjalankan layanan proxy.
#LAB 40 Finalisasi instalasi
download file /etc/swift/swift.conf` dari repositori sumber Object Storage:
# curl -o /etc/swift/swift.conf \Edit file /etc/swift/swift.conf dan selesaikan tindakan berikut:
https://git.openstack.org/cgit/openstack/swift/plain/etc/swift.conf-sample?h=stable/liberty
nano /etc/swift/swift.confpada bagian [swift-hash], konfigurasi prefiks dan suffiks pada ‘hash path’ environtment kamu.
[swift-hash]
...
swift_hash_path_suffix = HASH_PATH_SUFFIX
swift_hash_path_prefix = HASH_PATH_PREFIX
Ganti HASH_PATH_PREFIX dan HASH_PATH_SUFFIX dengan nilai-nilai yang unik.
Peringatan
Jaga nilai-nilai ini rahasia dan tidak mengubah atau kehilangan mereka.
pada bagian [storage-kebijakan: 0], konfigurasi kebijakan penyimpanan default:
[storage-policy:0]Salin file swift.conf ke direktori /etc/swift pada setiap node penyimpanan dan setiap node tambahan untuk menjalankan layanan proxy.
...
name = Policy-0
default = yes
Pada semua node, pastikan kepemilikan yang tepat dari direktori konfigurasi:
# chown -R root:swift /etc/swiftPada node kontroler dan setiap node lain yang menjalankan layanan proxy, restart layanan proxy Object Storage termasuk dependensinya:
# service memcached restart
# service swift-proxy restart
Pada node penyimpanan, memulai layanan Object Storage:
# swift-init all start
Catatan
Node storage menjalankan banyak layanan Object Storage dan command swift-init membuat mereka lebih mudah untuk mengelola. kamu dapat mengabaikan kesalahan layanan yang tidak berjalan pada node penyimpanan.
lakukan finalisasi diatas di semua node storage
#LAB 41 Verifikasi operasi Swift pada controller node
Catatan
Lakukan langkah ini pada controller node.
tambah OS_AUTH_VERSION=3 ke 2 source admin dan demo
gunakan sumber kredensial demo:
$ . demo-openrc
Show service status:
$ swift statUpload test file:
$ swift upload container1 FILE
List container:
$ swift list
download test file
$ swift download container1 FILE
verifikasi lewat dashboard
0 Response to "Tutorial Install dan Konfigurasi Openstack Liberty : Object Storage kodename (Swift)"
Post a Comment