티스토리 뷰

요즘들어 이런 생각이 많이 듭니다. 

시간 한번 참 빠르다! 라는 생각 말입니다. 엊그제 3강을 올릴 것 같은데 어느새 2주라는 시간이 지나가 버렸습니다.

다시 제 강의를 기다리고 계시는 분들을 위하여 잠 안자고 컴퓨터 앞에 앉았습니다. 오늘도 재밌게 보아주세요~~~ ^^



오늘은 블록스토리지와 오브젝트 스토리지에 대해 준비를 해 보았습니다.


많은 사람들이 클라우드 컴퓨팅을 접하면서 이런 질문을 합니다. 스토리지면 스토리지지? 블록 스토리지는 무엇이고, 오브젝트 스토리지는 무엇이냐? 여러분들은 블록 스토리지와 오브젝트 스토리지의 차이점을 아시나요?


예를 들어 여러분한테 컴퓨터가 한대 있다고 가정해 봅시다. 그 컴퓨터의 하드디스크 크기는 500MB입니다. 용량이 작아서 1GB짜리 새로운 하드 디스크를 달았습니다. 이때 표시되는 새 로컬 디스크는 어떤 스토리지에 해당하는 걸까요





블록 스토리지 (Block Storage)


여러분이 가지고 있는 컴퓨터는 실 컴퓨터가 아니라 클라우드 컴퓨트 서비스에서 할당 받은 인스턴스라고 생각해 봅시다. 인스턴스는 실제 물리 컴퓨터를 여러 대 사용할 수 있도록 가상화 시켜 놓은 컴퓨터이므로 실 컴퓨터처럼 하드 디스크를 추가할 수 있습니다. 다만, 용어가 다를 뿐이죠~!! 클라우드 컴퓨팅에서 컴퓨터나 서버를 인스턴스라고 부르는 것처럼, 인스턴스에 추가하는 하드 디스크를 블록 스토리지(Block Storage)라고 부릅니다.






오브젝트 스토리지(Object Storage)


오브젝트 스토리지는(Object Storage)는 블록 스토리지와는 다르게 단독으로 구성될 수 있으며, 사용자 계정의 컨테이너에 파일이나 데이터를 저장할 수 있는 저장 공간입니다오브젝트 스토리지는 사용자 계정이 있으며, 해당 사용자는 스토리지를 이용하기 위하여 시스템에 로그인을 하고, 파일을 저장할 수 있는 디렉터리라고 하는 컨테이너를 생성 및 삭제할 수 있으며, 해당 컨테이너에 데이터나 음악, 동영상, 문서와 같은 파일을 업로드하고 다운로드 받을 수 있습니다. 또한, 데이터가 필요 없을 경우에는 삭제도 가능합니다.





OpenStack Cinder Swift


OpenStack의 블록 스토리지는 Folsom 버전으로 오면서부터 블록 스토리지 서비스가 Cinder라는 별도의 프로젝트로 독립되었습니다. CinderCinder-Volume, Cinder-Backup, Cinder-Scheduler, Volume Provider, Cinder-api로 구성이 되며, Nova에서 제공해 주는 인스턴스의 확장 스토리지로 사용할 수 있습니다.


SwiftOpenStack의 기본 서비스 중 하나이며, 오브젝트 스토리지 서비스를 제공합니다. SwiftProxy-server, Account-server, Container-server, Object-server, swift-api로 구성이 되며, Proxy-server는 여러 대의 스토리지 노드에 구성되어 있는 Account-server, Container-server, Object-server를 관리합니다.




자 이제 오브젝트 스토리지가 뭐고 블록 스토리지가 뭔지 확실하게 이해하셨나요? 이 강의를 본 여러분들이라면 블록 스토리지와 오브젝트 스토리지가 어떻게 다른지 어디에서 사용하는지 이해하시리라 믿습니다. ^^


댓글
  • 프로필사진 뮤비 나리님 스토리지에 대한 강의 잘봤습니다.
    그런데, 읽다보니 궁금한것이 생겼습니다.
    블록스토리지와 오브젝트스토리지가 나눠지게된 이유는 무엇일까요?
    그리고, Cinder나 swift없이 nova만으로 디스크가 있는 인스턴스를 만들수 있나요? 그렇다면 이때 스토리지는(디스크) 무엇이라 불리게 되나요?
    2014.02.02 10:03
  • 프로필사진 Favicon of https://naleejang.tistory.com BlogIcon 나리 짱!!! naleejang 블록스토리지와 오브젝트 스토리지는 처음부터 다른 개념이였습니다.

    블록 스토리지는 인스턴스에 확장하여 쓸수 있는 디스크와 같은 개념이고, 오브젝트 스토리지는 웹하드가 발전된거라고 보시면 될것 같습니다.

    Nova 자체로는 디스크가 있는 인스턴스를 만들수는 없습니다. 운영체제가 설치된 디스크를 의미하시는 것이라면 그것이 바로 인스턴스이기 때문입니다.

    궁금한 것이 해소가 되셨는지 모르겠네요~!!
    2014.02.04 09:48 신고
  • 프로필사진 박재민 안녕하세요. 스토리지에 대한 이야기 잘 읽었습니다. 읽고 나서 궁금한 점이 있어 질문 드립니다.

    오브젝트 스토리지를 설명하시면서
    오브젝트 스토리지는 계정이 있는 사용자가
    컨테이너를 생성하여 음악, 동영상, 문서 등의 파일을 업로드-다운로드 할 수 있다라고 하셨습니다.

    또한 블록 스토리지의 예를 드시면서 할당받은 인스턴스에 매핑된 하드 디스크를 예로 드셨는데요
    이러한 블록 스토리지에는 위의 오브젝트 스토리지를 설명하시며 예를드신 음악, 동영상 문서 등의
    정보가 저장되지는 않는지요???

    비교의 예시가 서로 달라 잘 이해가 가지 않았어요ㅠㅠ

    결국 차이는 인스턴스와 매핑이 있어야 하느냐 또는 권한에 따른 접근 설정 등의 차이로 구분한다~ 로 이해 해도 되겠지요~??
    2014.02.17 15:21
  • 프로필사진 Favicon of https://naleejang.tistory.com BlogIcon 나리 짱!!! naleejang 네~ 맞습니다.
    인스턴스와 매핑을 하는 스토리지는 블록 스토리지~
    그렇지 않은 스토리지는 오브젝트 스토리지~

    서로가 다른 종류이기 때문에 예시가 달라질 수 밖에 없네요~~
    2014.02.24 21:09 신고
  • 프로필사진 권경덕 안녕하세요~ 강의 잘 보고 있습니다!! 감사합니다!! 저도 약간 궁금한게 생겨 질문을 드리겠습니다. 오브젝트 스토리지 같은 경우 compute 가 필요없는 예를들어 N드라이브나 드롭박스 같은데 사용되고, 블록스토리지는 노바와 함께 컴퓨트 서비스에 사용되는 하드와 같은건가요? 제가 잘 이해했는지 궁금합니다. 2014.10.08 22:42
  • 프로필사진 Favicon of https://naleejang.tistory.com BlogIcon 나리 짱!!! naleejang 네~!! 제대로 잘 이해하셨네요~!! ^^ 2015.11.30 16:59 신고
  • 프로필사진 한성섭 요즘 들어 open stack에 급 관심이 생긴 1人 입니다.

    기존 가상화 솔루션에 대해 다시 알아볼수 있는 장이여서 좋습니다.
    2015.11.26 10:07
  • 프로필사진 Favicon of https://naleejang.tistory.com BlogIcon 나리 짱!!! naleejang 네~~ 감사합니다. 2015.11.30 16:59 신고
  • 프로필사진 궁금 컨트롤러노드, 컴퓨트노드 neutron 등 모두 설치가 완료되고 웹페이지도 잘 들어가졌습니다.


    그런데 2틀뒤 갑작스럽게 로그인이 안되길래 컨트롤러 노드에서 keystone 관련 명령어를 치면 아래와같이 오류메시지가 뜨네요 keystone의 어떠한 명령어도 먹히지않기 대문에 다른 프로젝트 들도 인증이 안되어 모두 안되는것으로 보입니다.

    에러내용은 아래와같습니다.

    root@controller:~# keystone user-list
    /usr/lib/python2.7/dist-packages/keystoneclient/shell.py:64: DeprecationWarning: The keystone CLI is deprecated in favor of python-openstackclient. For a Python library, continue using python-keystoneclient.
    'python-keystoneclient.', DeprecationWarning)
    WARNING: unsupported identity-api-version 3, falling back to 2.0
    /usr/lib/python2.7/dist-packages/keystoneclient/v2_0/client.py:145: DeprecationWarning: Constructing an instance of the keystoneclient.v2_0.client.Client class without a session is deprecated as of the 1.7.0 release and may be removed in the 2.0.0 release.
    'the 2.0.0 release.', DeprecationWarning)
    /usr/lib/python2.7/dist-packages/keystoneclient/v2_0/client.py:147: DeprecationWarning: Using the 'tenant_name' argument is deprecated in version '1.7.0' and will be removed in version '2.0.0', please use the 'project_name' argument instead
    super(Client, self).__init__(**kwargs)
    /usr/lib/python2.7/dist-packages/debtcollector/renames.py:43: DeprecationWarning: Using the 'tenant_id' argument is deprecated in version '1.7.0' and will be removed in version '2.0.0', please use the 'project_id' argument instead
    return f(*args, **kwargs)
    /usr/lib/python2.7/dist-packages/keystoneclient/httpclient.py:376: DeprecationWarning: Constructing an HTTPClient instance without using a session is deprecated as of the 1.7.0 release and may be removed in the 2.0.0 release.
    'the 2.0.0 release.', DeprecationWarning)





    (이러한 에러가 발생전 swift 설치를 진행하려고 시도한적이 있긴 했습니다. )


    위와같은 상황에서는 어떻게 복원을 할 수있을까요?
    만약 운영상에 이런 문제가 생긴다면 굉장히 크리티컬할것으로 간주가 됩니다.
    2016.03.04 17:44
  • 프로필사진 naleejang 음 에러 로그만 봐서는 해당 명령어가 삭제 된것으로 보이는데요~!!
    keystone --help 하셔서 명령어 한번 확인해보시구요. 인증관련 정보들은 별도의 파일에 저장해 import해서 쓰신것 같은데 인증 정보도 한번 더 확인해보세요. 인증할때 키스톤 버전을 뭘로 했는지 확인해보시구요.
    2016.03.04 21:49
  • 프로필사진 ABH 나리님 강의 너무 감사히 잘 보고 있습니다.
    혹시 swift 업로더로 cyberduck, cloudberry 이외에 사용하시거나 추천하시는 업로더가 있을까요?
    날이 추운데 건강에 유의하시길 바라겠습니다 !
    2017.02.02 12:20
  • 프로필사진 Favicon of https://naleejang.tistory.com BlogIcon 나리 짱!!! naleejang 딱히 사용하는 업로더는 없습니다. 2017.03.06 10:14 신고
  • 프로필사진 비밀댓글입니다 2017.02.07 10:18
  • 프로필사진 오은총 선생님 궁금한게 오브젝트 스토리지는 컨테이너 개념이라고 설명하셨는데 노바에 인스턴스생성시 컨테이너를 할당하는 개념으로 보면되나요??? 2020.08.12 19:17
  • 프로필사진 나그네 https://kyumoonhan.tistory.com/7
    이분 글을 출처도 없이 퍼갔네요
    2020.08.18 16:47
댓글쓰기 폼