Tutorial Install dan Konfigurasi Openstack Liberty : Object Storage kodename (Swift)

OpenStack Object Storage adalah sistem penyimpanan objek multi-tenant. Hal ini sangat scalable dan dapat mengelola sejumlah besar data yang tidak terstruktur dengan biaya rendah melalui RESTful HTTP API.

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-openrc
Untuk 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 \
  python-keystoneclient python-keystonemiddleware \
  memcached
 Catatan

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.conf
pada 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]
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
Catatan
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 rsync
Formatlah perangkat /dev/sdb dan /dev/sdc sebagai XFS:
# mkfs.xfs /dev/sdb
# mkfs.xfs /dev/sdc
Buat struktur direktori ‘mount point’:
# mkdir -p /srv/node/sdb
# mkdir -p /srv/node/sdc
Edit file /etc/fstab dan tambahkan berikut untuk itu:
/dev/sdb /srv/node/sdb xfs noatime,nodiratime,nobarrier,logbufs=8 0 2
/dev/sdc /srv/node/sdc xfs noatime,nodiratime,nobarrier,logbufs=8 0 2
Mount perangkat:
# mount /srv/node/sdb
# mount /srv/node/sdc
Buat atau edit file /etc/rsyncd.conf mengandung berikut:
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:

# apt-get install swift swift-account swift-container swift-object
Dapatkan file konfigurasi layanan accounting, container, dan object, dari repositori sumber di Object Storage:
# 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.conf
pada 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.conf
pada 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.conf 
pada 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/node
Buat direktori recon dan pastikan kepemilikan tepat itu:
# mkdir -p /var/cache/swift
# chown -R root:swift /var/cache/swift
#LAB 38 Mengeclone dan Mengkonfigurasi Swift2










#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/swift
Buat 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 \
  --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’:
# swift-ring-builder account.builder add \
  --region 1 --zone 1 --ip 10.0.0.40 --port 6002 --device sdb --weight 100
Ulangi command ini untuk setiap perangkat penyimpanan pada setiap node penyimpanan. Pada arsitektur contoh gunakan command dalam empat variasi:
# 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’:

# swift-ring-builder container.builder add \
  --region 1 --zone 1 --ip 10.0.0.40 --port 6001 --device sdb --weight 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

Memverifikasi ring content:

# swift-ring-builder container.builder
Rebalance 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 \
  add --region 1 --zone 1 --ip STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS --port 6000 \
  --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’:
# swift-ring-builder object.builder add \
  --region 1 --zone 1 --ip 10.0.0.40 --port 6000 --device sdb --weight 100
Ulangi command ini untuk setiap perangkat penyimpanan pada setiap node penyimpanan. Pada arsitektur, contoh gunakan command dalam empat variasi:
# swift-ring-builder object.builder add \
  --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
Memverifikasi ring content:
# 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 \
https://git.openstack.org/cgit/openstack/swift/plain/etc/swift.conf-sample?h=stable/liberty
Edit file /etc/swift/swift.conf dan selesaikan tindakan berikut:
nano /etc/swift/swift.conf
pada 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]
...
name = Policy-0
default = yes
Salin file swift.conf ke direktori /etc/swift pada setiap node penyimpanan dan setiap node tambahan untuk menjalankan layanan proxy.

Pada semua node, pastikan kepemilikan yang tepat dari direktori konfigurasi:

# chown -R root:swift /etc/swift
Pada 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 stat
 Upload 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