# Dropbox와 같은 시스템은 파일을 어떻게 저장할까? http://www.slideshare.net/nexusz99/dropbox-55358622 ### CAP 이론 분산 시스템의 주요한 3가지 요소에 대한 설명 ![](https://goo.gl/kl6heG) - Consistency(일관성) - 데이터는 항상 일관성을 유지해야 한다. - 모든 관찰자는 같은 시간에 같은 데이터를 봐야한다. - Availability (가용성) - 모든 요청은 성공/실패 상관없이 항상 응답을 받아야 한다. - 죽으면 안된다. - Partition Tolerance (장애대응) - 네트워크 장애와 같은 상황에서도 시스템은 서비스를 할 수 있어야 한다. ![](https://goo.gl/5ll7rF) ### 분산 스토리지의 종류 - HDFS, NoSQL(Cassandra, MongoDB, ..) - OwFS (네이버 자체 개발) - 네이버는 어떻게 수천 테라바이트의 데이터를 저장할까? - http://deview.naver.com/files/2010/B1.pdf - [[Openstack Swift]] (Object Storage) - Ceph (https://ceph.com) ### Openstack Swift 특징 - 모든 서버가 HTTP를 제공한다 그리고 서버/클라이언트 통신간에 REST API를 제공한다. - 모든 데이터는 URL로 표현할 수 있다. - /accoutn/container/object - 예: /User_nxz/testcontainer/test.txt - REST API 예) - Request : PUT /User\_nxz/testcontainer/test.txt - Response : 201 Created