-
[OpenStack Class] 제48강 CentOS에서 설치해 보는 오픈스택 8편 - Multi node 설치openstack 2016. 2. 1. 21:07728x90
안녕하세요~!!
이것저것 벌려놓은게 많아서 이일저일 하느라 정작 블로그에 글을 올릴 시간은 별로 없네요~!! 오늘 시간을 내서 글 한번 올려봅니다. 오늘 공개하는건 Horizon 설치와 Cinder 설치 부분입니다. 다음 포스팅에서는 컴퓨트 노드 설치편을 올리도록 하겠습니다.Horizon 설치
이번에는 오픈스택을 쉽게 사용할 수 있게 제공되는 데쉬보드 서비스인 Horizon을 설치해 보겠습니다.
1. 먼저 mamcached, python-memcached, mod_wsgi, openstack-dashboard를 설치합니다.
# yum install memcached python-memcached mod_wsgi openstack-dashboard
2. /etc/openstack-dashboard/local-settings를 열어 데쉬보드에 접속할 수 있는 IP를 등록합니다. 접속할 IP 주소는 컨트롤러 노드 IP로 입력합니다.
# vi /etc/openstack-dashboard/local_settings … CACHES = { 'default': { 'BACKEND' : 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION' : 127.0.0.1:11211' } } … ALLOWED_HOSTS = ['localhost', '10.10.15.11'] … OPENSTACK_HOST = "10.10.15.11"
3. 시스템의 SELinux 정책이 HTTP 서버에 대한 네트워크 연결을 허용하도록 구성되어 있는지 확인합니다.
# setsebool -P httpd_can_network_connect on
4. /etc/httpd/conf/httpd.conf 파일을 열어 ServerName을 다음과 같이 입력합니다.
# vi /etc/httpd/conf/httpd.conf … ServerName 10.10.15.11:80
5. 아파치 웹 서버와 memcache 서비스를 시작합니다.
# service httpd start Starting httpd: [ OK ] # service memcached start Starting memcached: [ OK ] # chkconfig httpd on # chkconfig memcached on
6. 이제 컨트롤러 IP로 데쉬보드에 접속할 수 있습니다.
Cinder 설치
Cinder는 인스턴스에 디스크를 연결해서 인스턴스가 별도의 저장 공간을 가질 수 있도록 관리해 주는 서비스입니다. 그럼 지금부터 Cinder를 설치해 보겠습니다.
1. Fdisk 명령을 이용해서 스토리지용 디스크가 있는지 확인합니다.
$ sudo fdisk -l Disk /dev/sda: 10.7 GB, 10737418240 bytes 255 heads, 63 sectors/track, 1305 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0001c419 Device Boot Start End Blocks Id System /dev/sda1 * 1 64 512000 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 64 1306 9972736 8e Linux LVM Disk /dev/sdb: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000
2. 확인된 디바이스로 물리 볼륨(Physical Volume)과 볼륨 그룹(Volume Group)을 생성합니다.
# pvcreate /dev/sdb Physical volume "/dev/sdb" successfully created # vgcreate cinder-volumes /dev/sdb Volume group "cinder-volumes" successfully created
3. 볼륨 그룹을 생성한 후 /etc/lvm/lvm.conf 파일을 열어 LVM이 기존 디바이스에 접근하지 못하도록 다음과 같이 Filter을 걸어줍니다.
# vi /etc/lvm/lvm.conf devices { ... filter = [ "a/sda1/", "a/sdb/", "r/.*/"] ... }
4. Yum install을 이용해서 openstack-cinder와 scsi-target-utils를 설치합니다.
# yum install openstack-cinder scsi-target-utils
5. 설치가 완료되면 openstack-config를 이용해서 데이터베이스 정보를 설정합니다.
# openstack-config --set /etc/cinder/cinder.conf \ database connection mysql://cinder:cinderdbpass@10.10.15.11/cinder
6. Mysql에 접속해서 cinder 데이터베이스와 계정을 생성하고 접속권한을 설정합니다.
# mysql -u root ?p mysql> CREATE DATABASE cinder; Query OK, 1 row affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' \ IDENTIFIED BY 'cinderdbpass'; Query OK, 0 rows affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' \ IDENTIFIED BY 'cinderdbpass'; Query OK, 0 rows affected (0.00 sec)
7. 다음과 같은 명령으로 cinder 테이블을 생성합니다.
# su -s /bin/sh -c "cinder-manage db sync" cinder
8. Keystone에 cinder 사용자를 생성하고 서비스 테넌트에 admin 롤을 추가합니다.
# keystone user-create --name=cinder --pass=cinderpass --email=cinder@example.com
+----------+----------------------------------+ | Property | Value | +----------+----------------------------------+ | email | cinder@example.com | | enabled | True | | id | c95341072f35490a83351f760c151e9b | | name | cinder | | username | cinder | +----------+----------------------------------+
# keystone user-role-add --user=cinder --tenant=service --role=admin
9. 생성된 keystone 정보는 openstack-config을 이용해서 /etc/cinder/cinder.conf에 적용합니다.
# openstack-config --set /etc/cinder/cinder.conf DEFAULT \ auth_strategy keystone # openstack-config --set /etc/cinder/cinder.conf keystone_authtoken \ auth_uri http://10.10.15.11:5000 # openstack-config --set /etc/cinder/cinder.conf keystone_authtoken \ auth_host 10.10.15.11 # openstack-config --set /etc/cinder/cinder.conf keystone_authtoken \ auth_protocol http # openstack-config --set /etc/cinder/cinder.conf keystone_authtoken \ auth_port 35357 # openstack-config --set /etc/cinder/cinder.conf keystone_authtoken \ admin_user cinder # openstack-config --set /etc/cinder/cinder.conf keystone_authtoken \ admin_tenant_name service # openstack-config --set /etc/cinder/cinder.conf keystone_authtoken \ admin_password cinderpass
10. 이번에는 Qpid 정보를 openstack-config를 이용해서 다음과 같이 설정합니다.
# openstack-config --set /etc/cinder/cinder.conf \ DEFAULT rpc_backend cinder.openstack.common.rpc.impl_qpid # openstack-config --set /etc/cinder/cinder.conf \ DEFAULT qpid_hostname 10.10.15.11
11. 마지막으로 glance_host 정보를 openstack-config를 이용해서 설정합니다.
# openstack-config --set /etc/cinder/cinder.conf \ DEFAULT glance_host 10.10.15.11
12. 이번에는 keystone에 cinder 서비스를 생성하고 endpoint를 생성합니다.
# keystone service-create --name=cinder --type=volume --description="OpenStack Block Storage"
+-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | OpenStack Block Storage | | enabled | True | | id | 3679708526d84d77b26e26baf0126817 | | name | cinder | | type | volume | +-------------+----------------------------------+
# keystone endpoint-create \ --service-id=3679708526d84d77b26e26baf0126817 \ --publicurl=http://10.10.15.11:8776/v1/%\(tenant_id\)s \ --internalurl=http://10.10.15.11:8776/v1/%\(tenant_id\)s \ --adminurl=http://10.10.15.11:8776/v1/%\(tenant_id\)s
+-------------+------------------------------------------+ | Property | Value | +-------------+------------------------------------------+ | adminurl | http://10.10.15.11:8776/v1/%(tenant_id)s | | id | 797b6381de9f48da95c37c8c83d7c084 | | internalurl | http://10.10.15.11:8776/v1/%(tenant_id)s | | publicurl | http://10.10.15.11:8776/v1/%(tenant_id)s | | region | regionOne | | service_id | 3679708526d84d77b26e26baf0126817 | +-------------+------------------------------------------+
13. Version 2을 위한 서비스를 하나 더 생성하고 endpoint를 생성합니다.
# keystone service-create --name=cinderv2 --type=volume --description="OpenStack Block Storage V2"
+-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | OpenStack Block Storage V2 | | enabled | True | | id | 786ad0104e504fb7ac794ac161a7c613 | | name | cinderv2 | | type | volume | +-------------+----------------------------------+
# keystone endpoint-create \ --service-id=786ad0104e504fb7ac794ac161a7c613 \ --publicurl=http://10.10.15.11:8776/v2/%\(tenant_id\)s \ --internalurl=http://10.10.15.11:8776/v2/%\(tenant_id\)s \ --adminurl=http://10.10.15.11:8776/v2/%\(tenant_id\)s
+-------------+------------------------------------------+ | Property | Value | +-------------+------------------------------------------+ | adminurl | http://10.10.15.11:8776/v2/%(tenant_id)s | | id | e20949bd960f462a8c1d4498ef0f91c9 | | internalurl | http://10.10.15.11:8776/v2/%(tenant_id)s | | publicurl | http://10.10.15.11:8776/v2/%(tenant_id)s | | region | regionOne | | service_id | 786ad0104e504fb7ac794ac161a7c613 | +-------------+------------------------------------------+
14. CentOS에서는 블록 스토리지용 볼륨을 iSCSI(Internet Small Computer System Interface) 서비스로 구성합니다. 존재하지 않을 경우, / etc/tgt/targets.conf 파일의 시작 부분에 다음 줄을 추가합니다.
# vi /etc/tgt/targets.conf include /etc/cinder/volumes/*
15. Cinder 서비스를 시작합니다. 그리고 부팅 시 cinder 서비스가 자동 실행 될 수 있도록 설정합니다.
# service openstack-cinder-api start Starting openstack-cinder-api: [ OK ] # service openstack-cinder-scheduler start Starting openstack-cinder-scheduler: [ OK ] # service openstack-cinder-volume start Starting openstack-cinder-volume: [ OK ] # service tgtd start Starting SCSI target daemon: [ OK ] # chkconfig openstack-cinder-api on # chkconfig openstack-cinder-scheduler on # chkconfig openstack-cinder-volume on # chkconfig tgtd on
16. Cinder 볼륨을 생성하기 전에 사용자 정보를 먼저 export해야 합니다. 여기서는 앞에서 생성한 Demo 계정을 이용해서 테스트해 보겠습니다. 좀 더 쉽게 테스트를 하기 위해 vi 에디터를 열어 다음과 같은 정보를 입력하고 저장합니다.
# vi demo-openrc.sh export OS_USERNAME=demo export OS_PASSWORD=demopass export OS_TENANT_NAME=demo export OS_AUTH_URL=http://10.10.15.11:35357/v2.0
17. 편집된 계정 정보를 다음과 같은 명령어로 export합니다.
# source demo-openrc.sh
18. Cinder 명령어를 이용해서 볼륨 하나를 생성합니다.
# cinder create --display-name myVolume 1
+---------------------+--------------------------------------+ | Property | Value | +---------------------+--------------------------------------+ | attachments | [] | | availability_zone | nova | | bootable | false | | created_at | 2014-06-16T12:31:26.095755 | | display_description | None | | display_name | myVolume | | encrypted | False | | id | 5e691b7b-12e3-40b6-b714-7f17550db5d1 | | metadata | {} | | size | 1 | | snapshot_id | None | | source_volid | None | | status | creating | | volume_type | None | +---------------------+--------------------------------------+
19. 생성한 볼륨은 list로 확인할 수 있습니다. 이때 Status가 available이여야만 인스턴스에 연결해서 사용할 수 있습니다.
# cinder list
+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+ | ID | Status | Display Name | Size | Volume Type | Bootable | Attached to | +--------------------------------------+-----------+--------------+------+-------------+----------+-------------+ | 5e691b7b-12e3-40b6-b714-7f17550db5d1 | available | myVolume | 1 | None | false | | +--------------------------------------+-----------+--------------+------+-------------+----------+-------------+
출처 - http://naleejang.tistory.com/156'openstack' 카테고리의 다른 글
[OpenStack Class] 제50강 CentOS에서 설치해 보는 오픈스택 10편 - Multi node 설치 (0) 2016.02.01 [OpenStack Class] 제49강 CentOS에서 설치해 보는 오픈스택 9편 - Multi node 설치 (0) 2016.02.01 [OpenStack Class] 제47강 CentOS에서 설치해 보는 오픈스택 7편 - Multi node 설치 (0) 2016.02.01 [OpenStack Class] 제46강 CentOS에서 설치해 보는 오픈스택 6편 - Multi node 설치 (0) 2016.02.01 [OpenStack Class] 제45강 CentOS에서 설치해 보는 오픈스택 5편 - Multi node 설치 (0) 2016.02.01