강좌 & 팁
Log-structured 파일 시스템에 대한 소개에서 세번째입니다.
여러가지 형태의 파일 시스템 구조를 살펴보는 것은 최근에 PC(Personal Computer)에서
모바일 혹은 웹환경으로 모든 서비스들이 진화하면서 그런 환경에 맞게 진화해가는
파일시스템에 대한 궁금증을 해소하기 위해서였습니다.
클라우드 스토리지에 관심을 갖고 보던중 관련된 정보들에 대해서 소개합니다.
exofs(Extended Object File System)는 기존의 Linux 파일 시스템으로 오브젝트 스토리지 시스템상에서 빌드된다.
exofs는 IBM의 Avishay Traeger가 처음 개발했으며 그 당시에는 OSD 파일 시스템 또는 osdfs라고 했다.
Panasas(오브젝트 스토리지 시스템을 확립한 회사)는 이 프로젝트를 인수하여 이 파일 시스템의 이름을
exofs로 바꾸었다. (이 이름은 ext2 파일 시스템에서 따온 것이다.)
오브젝트 스토리지 시스템을 기반으로 하는 파일 시스템
개념적으로 오브젝트 스토리지 시스템은 오브젝트와 관련 메타데이터로 구성된 일반 네임스페이스로 볼 수 있다.
오브젝트 스토리지 시스템은 의미상의 교A착점을 제공하기 위해 일부 블록을 점유하는 메타데이터를 사용한다는 점에서
블록을 기반으로 하는 기존의 스토리지 시스템과 비교된다.
상위 레벨에서는 exofs가 그림 3에 표시된 것과 같이 구성된다.
OSD 개시자를 통해 OSD T-10 표준 SCSI 명령을 구현한다.
exofs의 기본 개념은 OSD 백스토어를 기반으로 기존 파일 시스템을 제공하는 데 있다.
존재하는 파일 시스템이 기존의 파일 시스템이기 때문에 이렇게 하면 오브젝트 레벨 스토리지로 더 쉽게 마이그레이션할 수 있다.
OSD의 각 오브젝트는 일반 네임스페이스에서 64비트 ID로 표현된다.
표준 POSIX 인터페이스를 오브젝트 시스템으로 오버레이하려면 맵핑을 해야한다.
exofs에서는 확장 가능한 간단한 맵핑을 제공한다.
파일 시스템에 있는 파일은 inode로 고유하게 표현된다.
exofs는 inode를 오브젝트 시스템의 OID(Object Identifier)에 맵핑한다.
이렇게 하고 나면 파일 시스템의 모든 요소가 오브젝트로 표현된다.
파일은 오브젝트로 직접 맵핑되며 디렉토리는 디렉토리 내에 포함된 파일을 파일 이름과
inode-OID 쌍을 통해 참조하는 파일이 된다.
그림 4에는 이러한 내용이 간단하게 표시되어 있다.
기타 오브젝트는 inode를 할당하는 데 필요한 inode 비트맵과 같은 것을 지원하기 위해 존재한다.
오브젝트 공간에서 오브젝트를 표현하는 데 사용되는 OID의 크기는 64비트이며
이 OID를 통해 대용량 오브젝트 공간을 지원한다.
오브젝트 스토리지는 중요한 개념이며 확장 가능한 시스템을 개선해 나가는 데 도움이 된다.
오브젝트 스토리지로 인해 파일 시스템 일부가 호스트에서 제거되어 스토리지 서브시스템으로 포함되었다.
여기에는 상충되는 관계가 있지만 파일 시스템의 일부를 다수의 엔드포인트로 분산함으로써 워크로드를
분산할 수 있고 오브젝트 기반의 메소드를 더 단순화하여 스토리지 시스템의 규모를 더 크게 확장할 수 있다.
블록을 파일에 맵핑해야 하는 호스트 운영 체제 대신 스토리지 장치 자체에서
이러한 맵핑을 제공하게 되면 호스트를 파일 레벨에서 운영할 수 있다.
또한, 오브젝트 스토리지 시스템에서는 사용 가능한 메타데이터를 쿼리하는 기능을 제공한다.
이 기능을 이용하면 검색 기능을 엔드포인트 오브젝트 시스템으로 분산할 수 있기 때문에
추가로 몇 가지 장점을 얻을 수 있다.
최근에는 오브젝트 스토리지가 클라우드 스토리지 영역에 다시 등장했다.
스토리지를 서비스 형태로 판매하는 클라우드 스토리지 제공업체는 스토리지를 기본의 블록 API 대신
오브젝트로 표현한다. 이 제공업체들은 API를 구현하여 오브젝트를 전송하고 관리하거나 메타데이터를 관리한다
To be Continued......
출처 : https://www.ibm.com/developerworks/kr/library/l-nilfs-exofs/