본문 바로가기
Infra/프라이빗 클라우드 인프라

Object Storage(swift) 서비스 관리

by shinebee* 2020. 7. 8.
  • Proxy Node
    • openstack-swift-proxy (proxy 서비스) → 모든 외부의 요청을 받는다 (API)
    • proxy port = 8080
  • Storage Node
    • openstack-swift-account
    • openstack-swift-container
    • openstack-swift-object → REST API로 모든 요청이 이루어진다. → web service ( rest api는 http 프로토콜로 통신하기 때문에 )
    • 아주 여러개가 존재.

 

 

[ 용어 ]

 

  • Region
    • openstack에 해당하는 scope
    • 물리적인 공간(위치)으로서의 데이터 단위
    • 단일 region → RegionOne

 

  • Zone
    • 특정 시스템의 host / node / rack
    • 복제본을 안전하게 저장할 단위
    • zone의 단위는 복제본의 단위
    • 복제본은 세개 이상 키는걸 추천
    • 물리적으로 떨어져있는 공간에 하는것이 제일 좋다.

 

  • Device
    • HDD : MTBF → 평균 고장 시간(이정도 넘어가면 평균적으로 고장이 난다.)
    • 하나의 zone안에 들어가야한다.
    • Disk / Partition
    • 일반적으로 disk 사용
    • Device단위는 Disk 단위를 사용한다.

 

  • Partition
    • 데이터를 분산하는 단위
    • 많으면 많을수록 데이터를 고르게 저장시킬 수 있다.
    • 많으면 많을수록 CPU는 더 열일해야한다.
    • 권장하는 최소 파티션은 100개
    • FileSystem은 반드시 있어야한다.
    • 외부 사용자 입장에서 볼 때는 파일 시스템이라는게 없지만 존재한다.
    • 최종적으로는 블록시스템의 파일시스템에 저장을 해야한다.
    • Device안에 여러개의 partition이 존재
    • Directory이다.
    • File
      • Metadata
      • Data
        • UUID를 붙인다.
        • 다 쪼개서(chunk) 분리 시킨다.
        • 분리된 Object 하나하나를 partition에 저장한다.
        • 데이터를 고르게 분배 시켜줘야된다.
        • 900개의 방이 있다 치고 Data를 쪼개서 하나하나 다른 방에 저장시킨다. 복제본은 다른 zone에있는 다른 디바이스에 다른 파티션에 저장한다.
        • Consistent Hash Ring
          • 시작점과 끝점이 존재하고 그 사이엔 hash들이 있다.
          • chunk를 hash를 떠서 그 hash에 위치하는 partition에 저장...
    • 파티션 개수 = 2^파티션 파워
    • cd /etc/swift swift-ring-builder account.builder swift-ring-builder container.builder swift-ring-builder object.builder 포트가 다름.
    • 위의 장치들은 /srv/node/swiftloopback에 있다. lsblk loop → loopback device를 의미 losetup

'Infra > 프라이빗 클라우드 인프라' 카테고리의 다른 글

NFS를 Cinder로 사용하기  (0) 2020.07.10
Swift deivce add  (0) 2020.07.08
Image 생성 - error  (0) 2020.07.07
[ Glance with Swift backend ]  (0) 2020.07.07
Image 생성 (diskimage-builder)  (0) 2020.07.07

댓글