오브젝트스토리지를 ceph와 연계하여 간단하게 설치해보았다.
물론 해당 오브잭트구성만으로 사용할 수 있는 것은 아니나, 오브잭트를 구성하려는 독자라면 오픈스택과 swift까지 이미 해보았을 것으로 판단되어
오브잭트 구성만을 본문에 담았으니 참고용으로 사용하시길 바랍니다.
OBJECT
사전설치 내용
– ceph deploy 사용자는 requiretty = disabled
#vi /etc/sudoers
– Defaults:ceph !requiretty 게이트웨이 노드 재시작. ( 문서에는 게이트웨어이만 국한된 적용이라고 하나 실제 적용시 모니터 노드에서 불러오지를 못햇다.
-이부분 참고 해봐야 할 부분이다.)
——————-
기본적사용 풀 생성. ( 위에까지 진행 했다면 자동으로 생성되어야 정상이나 생성이 안될 경우가 있다..( 내경우..이유 아직 모름)
.rgw
.rgw.root
.rgw.control
.rgw.gc
.rgw.buckets
.rgw.buckets.index
.log
.intent-log
.usage
.users
.users.email
.users.swift
.users.uid
——–
ADD A GATEWAY CONFIGURATION TO CEPH
ADMIN 노드에서 진행.
ceph.conf 내용 추가
============================
[client.radosgw.gateway]
host = {hostname}
keyring = /etc/ceph/ceph.client.radosgw.keyring
rgw socket path = /var/run/ceph/ceph.radosgw.gateway.fastcgi.sock
log file = /var/log/radosgw/client.radosgw.gateway.log
[global]
#append the following in the global section.
debug ms = 1
debug rgw = 20
============================
—-> 위의 ceph.conf의 변경 사항은 전체 노드에 적용
–overwrite-conf config pull [hostname] /etc/ceph/ceph.conf의 수정사항을 ceph 설정 루트디렉토리로 가져오기
–overwrite-conf config push [host].. .. 각 노드로 ceph.conf를 업데이트 해준다.
COPY CEPH.CLIENT.ADMIN.KEYRING FROM ADMIN NODE TO GATEWAY HOST
ADMIN 노드에서 진행.
*관리노드가 게이트웨이 노드일 경우 아래는 진행하지 않아도 된다.
# sudo scp /etc/ceph/ceph.client.admin.keyring ceph@{hostname}:/home/ceph
# ssh {hostname}
# sudo mv ceph.client.admin.keyring /etc/ceph/ceph.client.admin.keyring
CREATE A CGI WRAPPER SCRIPT
GATEWAY 노드에서 진행.
스크립트 만들기
# sudo vi /var/www/html/s3gw.fcgi
#!/bin/sh
exec /usr/bin/radosgw -c /etc/ceph/ceph.conf -n client.radosgw.gateway
# sudo chmod +x /var/www/html/s3gw.fcgi
CREATE DATA DIRECTORY
GATEWAY 노드에서 진행.
# sudo mkdir -p /var/lib/ceph/radosgw/ceph-radosgw.gateway
START RADOSGW SERVICE
GATEWAY 노드에서 진행.
# sudo /etc/init.d/radosgw start
CREATE A GATEWAY CONFIGURATION FILE
# ceph-deploy install –rgw [ …]
# ceph-deploy admin
CREATE A GATEWAY INSTANCE
# ceph-deploy rgw create
게이트웨이가 구동된다면 다음의 접근이 가능해야 한다..
-> http://client-node:7480
게이트웨이 인스턴스가 제대로 작동하면 다음과 같은 응답을 받아야합니다.
anonymous
*만약 재대로 작동이 안된다면 처음부터 다시 진행해보고 진행하기전에 다음을 실행하라.
# ceph-deploy purge []
# ceph-deploy purgedata []
-> 이후 해당 노드 ceph 재설치 해야한다.
==================================================이 후 위에서 부터 반복..
추가]
CHANGE THE DEFAULT PORT
Civetweb의 기본 포트는 7480이나 기본 포트로 변경하려면
ceph-deploy 작업 디랙토리에서 ceph.conf 파일 수정 —> [client.rgw. ] 섹션추가
를 Ceph Object Gateway 노드의 짧은 노드 이름 (즉, hostname -s)으로 바꿉니다.
예) [client.rgw.gateway-node1]
rgw_frontends = “civetweb port=80”
포트 관련 수정후 ceph-deploy –overwrite-conf config push []
새 포트 설정을 적용하려면 Ceph Object Gateway를 다시 시작하십시오.
sudo systemctl restart ceph-radosgw.service
==================================================
아파치로 구동에서 CIVETWEB 구동으로 바꿀시 다음의 내용을 변경해라..
OBJECT STORAGE ceph.conf 파일 내용
[client.radosgw.gateway-node]
host = {hostname}
keyring = /etc/ceph/ceph.client.radosgw.keyring
rgw socket path = /var/run/ceph/ceph.radosgw.gateway.fastcgi.sock
log file = /var/log/radosgw/client.radosgw.gateway-node1.log
–>
[client.radosgw.gateway-node1]
host = {hostname}
keyring = /etc/ceph/ceph.client.radosgw.keyring
log file = /var/log/radosgw/client.radosgw.gateway-node1.log
rgw_frontends = civetweb port=80
수정 후
sudo service radosgw restart id=rgw.
============================================
이후 s3붙여 사용해보시거나 swift를 구성하여 사용하시면 됩니다.