SAIO 설치하기

1. Test용 Swift Cluster가 필요한데

OpenStack Swift에 대한 모니터링을 구현해 보기 위해서 Swift를 설치해야 하는데, 실제 Swift 클러스터를 구축하기에는 너무나도 손이 많이 가고 귀찮아서 찾아보니,
Swift-All-In-One(SAIO) 라는 편리한 녀석이 존재한다는것을 있다는 것을 알게되었다 (오예!!)

2. SAIO 설치

OpenStack 공식사이트에 가 보니 상당히 문서화가 잘 되어있었다. OpenStack Docs: SAIO - Swift All In One

시키는대로 천천히 설치를 했더니 약 2시간 정도 걸려서 설치를 할 수 있었다.
엄청 길어보이지만 실제로 내가 입력해야 하는 명령어만 추려보면 그렇게 길지도 않다.

적당히 귀찮을 만큼의 작업을 해야한다. Devstack 처럼 한번에 다 설치가 되면 참으로 좋으련만.

3. SAIO 환경

나는 OpenStack Pike에서 VM을 하나 생성했다. VCPU 4개, 메모리 RAM 8192MB, Disk는 Cinder로 15GB 한 개를 root로, 또 다른 15GB 디스크를 Swift 용 디스크로 사용하였다.

매뉴얼에는 추가한 드라이브가 sdb로 나와있지만, 사실 KVM 환경에서는 vdb여서 그 부분만 잘 반영해서 설치를 진행하였다. 그 정도 센스는 발휘해 줘야하니까.

4. 문제점

오픈소스의 매뉴얼들이 항상 그렇듯이, 매뉴얼에 없는 문제가 항상 발생했다.

4.1 문제점 1

별 문제없이 잘 진행하고 있었는데 “Getting the code” 부분에서 2번 항목 명령어를 실행하니 (cd $HOME/swift; sudo pip install -r test-requirements.txt) 갑자기 crptography 뭐시기 하면서 에러메시지가 뜬다.

Collecting cryptography!=2.0,>=1.6 (from -r requirements.txt (line 13))
  Using cached cryptography-2.1.4.tar.gz
    Complete output from command python setup.py egg_info:
    error in cryptography setup command: Invalid environment marker: python_version < '3'

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-9tkfu9/cryptography/

역시 구글님께 물어보니 친절하게 답변을 해 주셨다. 명령어 한 줄로 해결이 가능했다.
pip install --upgrade setuptools

4.2 문제점 2

문제점 1이 해결되나 싶더니 4번 항목에서 바로 다른 문제가 생겼다.

Running setup.py install for PyECLib ... error
    Complete output from command /usr/bin/python2 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-fNdOGT/PyECLib/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-hsY7_G-record/install-record.txt --single-version-externally-managed --compile:
    /usr/lib64/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'bugtrack_url'
      warnings.warn(msg)
    running install
    running build
    **************************************************************
    ***
    *** Can not locate liberasurecode.so.1
    ***
    *** Install -
    ***   Manual: https://github.com/openstack/liberasurecode
    ***   Fedora/Red Hat variants: liberasurecode-devel
    ***   Debian/Ubuntu variants: liberasurecode-dev
    ***
    **************************************************************

해결법은 두 줄의 명령어다. 먼저 OpenStack Repository가 추가가 되어있어야 설치를 할 수 있다.

yum install centos-release-openstack-pike
yum install -y liberasurecode-devel

5. 왜 안될까

모든것이 다 잘 진행이 되었는데, 제일 마지막 부분인 “Setting up scripts for running Swift”의 14번 항목과 15번 항목은 끝내 실행시키지 못했다.

14번 항목을 실행하면 자꾸 pbr.version 모듈이 없다고 뜨는데... 아무리 구글을 뒤져도 해결책을 찾지 못했다. 누구 아시는분 없나요?

pip install을 아무리 해봐도 전혀 해결될 기미가 보이지를 않는데.

6. 그래도 설치 완료

그래도 SAIO의 동작 자체에는 이상이 없어 보였다. 생각보다 간단하게 테스트용 Swift를 구축해 볼 수 있어서 좋았다. 이제는 모니터링 툴을 설치하고 구성을 해 봐야지.

Photo by Dmitrii Medvedev on Unsplash