[목 차]
옮긴이 머리말 ix
베타리더 후기 x
시작하며 xii
CHAPTER 1 스토리지란?
1.1 스토리지 역사 3
1.2 스토리지 종류 6
__1.2.1 블록 스토리지 7
__1.2.2 파일 스토리지 7
__1.2.3 오브젝트 스토리지 7
1.3 스토리지 형식 9
__1.3.1 어플라이언스 스토리지 9
__1.3.2 SDS 10
1.4 스토리지에 사용되는 매체 12
__1.4.1 HDD 12
__1.4.2 SSD 13
1.5 연결 인터페이스 15
__1.5.1 SATA와 SAS 15
__1.5.2 NVMe 16
1.6 서버와 스토리지의 통신에서 사용되는 프로토콜 17
__1.6.1 데이터 플레인 프로토콜 18
__1.6.2 컨트롤 플레인 프로토콜 20
CHAPTER 2 스토리지 구조
2.1 블록 스토리지 구조 25
__2.1.1 스토리지 풀과 데이터 보호 26
__2.1.2 볼륨 32
__2.1.3 경로 설정 37
__2.1.4 replication 41
2.2 파일 스토리지 51
__2.2.1 파일 시스템 53
__2.2.2 파일 공유와 록 54
2.2 오브젝트 스토리지 57
__2.3.1 키-값 저장 방식 59
CHAPTER 3 베어메탈 서버/가상 머신에서의 사용 방법
3.1 베어메탈 서버에서 이용하는 방법 63
__3.1.1 블록 스토리지(iSCSI) 이용 예시 65
__3.1.2 파일 스토리지(NFS, SMB) 이용 예시 74
3.2 가상 머신에서 이용하는 방법 79
__3.2.1 패스스루 모드와 가상 디스크 모드 80
__3.2.2 설정 흐름 82
__3.2.3 오픈스택 Cinder(블록)를 사용한 볼륨 할당 예시 84
__3.2.4 오픈스택 Manila를 사용한 볼륨 할당 예시 88
CHAPTER 4 컨테이너/쿠버네티스에서의 사용 방법
4.1 컨테이너와 쿠버네티스 93
4.2 컨테이너 스토리지 인터페이스 96
4.3 쿠버네티스의 스토리지 모델 100
__4.3.1 자원의 범위와 권한 100
__4.3.2 접근 모드 102
__4.3.3 반환 정책 104
4.4 파드에 볼륨 할당 105
4.5 CSI로 이용할 수 있는 쿠버네티스 스토리지 기능 110
__4.5.1 Volume Expansion 110
__4.5.2 Raw Block Volume 112
__4.5.3 Volume Cloning 115
__4.5.4 Volume Snapshot & Restore 115
__4.5.5 Topology 119
__4.5.6 Generic Ephemeral Inline Volumes 121
CHAPTER 5 스토리지 관리와 설계
5.1 스토리지를 고르는 방법 127
__5.1.1 스토리지의 종류와 고려 사항 127
__5.1.2 어플라이언스 스토리지 vs. SDS 130
__5.1.3 베어메탈 서버 vs. 가상 머신 vs. 컨테이너 133
__5.1.4 폐쇄형 클라우드 vs. 공개형 클라우드 136
5.2 스토리지 집약과 멀티 테넌트 설계 140
5.3 장애에 강한 구성 설계 145
__5.3.1 드라이브 장애 대책 145
__5.3.2 컨트롤러 장애 대책 146
__5.3.3 스토리지 서버 장애 대책 147
__5.3.4 사이트 장애 대책 148
5.4 백업 150
__5.4.1 RPO/RTO의 결정 150
__5.4.2 백업 방법 152
__5.4.3 백업 계획 예시 155
__5.4.4 백업 흐름 156
__5.4.5 복원 흐름 158
5.5 모니터링 설계 160
__5.5.1 상태 모니터링 163
__5.5.2 성능 모니터링 163
__5.5.3 용량/비용 모니터링 166
__5.5.4 사용자 관점의 모니터링 설계 167
__5.5.5 스토리지 관리자 관점의 모니터링 설계 168
5.6 암호화 설계 171
__5.6.1 통신로 암호화 171
__5.6.2 저장 데이터 암호화 174
__5.6.3 백업 암호화 177
5.7 미션 크리티컬한 시스템을 위한 설계 181
CHAPTER 6 클라우드 네이티브와 스토리지
6.1 클라우드 네이티브란? 187
6.2 서비스 수준에 대한 인식 변화 190
6.3 스테이트풀 애플리케이션의 보급 192
6.4 클라우드 레디 스토리지와 클라우드 네이티브 스토리지 194
6.5 클라우드 네이티브 스토리지의 대표적인 구조 197
__6.5.1 컨테이너화 스토리지 197
__6.5.2 쿠버네티스 네이티브 스토리지 199
마치며 202
찾아보기 204
[본 문]
데이터 플레인(data plane)은 데이터를 읽고 쓰는 read/write를 처리하는 컨트롤러군이다. 이 데이터 플레인에 연결되는 네트워크를 인밴드(in-band)라고도 한다. 한편 컨트롤 플레인(control plane)은 볼륨의 생성이나 삭제 등 스토리지의 자원을 조작하고 설정하는 컨트롤러군이다. 컨트롤 플레인에 연결되는 네트워크를 아웃오브밴드(out-of-band)라고도 한다. (17쪽)
리모트는 동일 데이터 센터 내부처럼 근거리나 100킬로미터 이상처럼 장거리 등 거리에 따라서 다른 리모트 replication 기능을 제공하는 스토리지도 많다. 이처럼 장거리용 replication의 경우 소스에서 타깃으로 흐르는 데이터의 전송량을 조금이라도 줄이기 위해서 전송하기 전에 압축이나 중복 제거를 하는 것도 있다. / 초장거리 replication의 경우 스토리지의 리모트 replication 지원 거리를 초과하기도 한다. 그럴 때는 멀티 홉(multihop)으로 구성한다. 멀티 홉은 중계 역할을 하는 스토리지를 배치함으로써 리모트 replication을 실현한다. (44쪽)
스토리지와 가상 머신 관리 소프트웨어의 통신에는 컨트롤 플레인 API로 제조사의 독자적인 프로토콜이나 스토리지 관리 표준 인터페이스인 SMI-S 등을 이용한다. 하지만 안타깝게도 가상 머신 관리 소프트웨어에는 표준 사양이나 규격이 없으며 지원하는 스토리지 관리 기능이나 조작 방법도 각각 다르다. 또한 가상 머신 관리 소프트웨어가 제공하는 건 어디까지나 관리 부분이며 실제로 데이터를 읽고 쓰는 건 데이터 플레인 프로토콜인 iSCSI, NFS다. (79쪽)
VolumeSnapshot은 스토리지의 스냅숏을 호출하기 때문에 실제로 갱신된 데이터의 차분만 저장돼 소비하는 용량을 줄인 백업이 가능하다. 단, 스토리지에 따라서는 원본 볼륨(PV)이 삭제되면 복원할 수 없게 되기도 한다. 한편 스냅숏이 생성돼 있다면 PV가 삭제돼도 스토리지에서는 대상 볼륨을 지우지 않고 복원 가능한 스토리지도 있다. / 이처럼 복원 조건은 사용하는 스토리지마다 다르므로 반드시 사전에 확인한다. (119쪽)
컨트롤러의 장애 대책으로는 우선 컨트롤러를 이중화해야 한다. 어플라이언스 스토리지의 대부분은 컨트롤러를 여럿 갖추고 있어 고가용성(high availavility, HA) 구성이 가능하다. SDS는 컨트롤러의 각 기능을 하는 요소를 여러 서버에 설치해 HA를 구성한다. / 컨트롤러의 고가용성 구성에는 Active-Active 구성과 Active-Standby 구성이 있다. 어느 쪽을 이용할 수 있는지는 제품에 따라 다르기에 제품의 기술 문서를 확인하고 설정하자. 또한 가능하다면 각 컨트롤러의 전원도 별개의 전원에 연결하면 좋다. (146쪽)
쿠버네티스 네이티브 스토리지(Kubernetes native storage)는 이름 그대로 쿠버네티스상에서 작동하는 스토리지다. 쿠버네티스 네이티브 스토리지는 쿠버네티스상에서 컨테이터화 스토리지를 파드로 실행한다. 이를 통해 쿠버네티스가 갖춘 롤링 업데이트에 의한 버전 업그레이드, 자가 치유, 스케일 기능 등 쿠버네티스가 가진 기능을 사용해 스토리지를 관리한다. / 또한 기본적인 버전 업그레이드 등의 조작에 대해 스토리지의 고유 명령어를 외울 필요 없이 쿠버네티스 명령어로 실행할 수 있는 스토리지가 많은 것도 특징이다. (199쪽)
이 책을 읽고 어떤 느낌을 받으셨나요?
리뷰를 남기고 다른 독자들과 함께 공유해보세요.
안내 열기구매(배송/수령완료) 후 리뷰를 작성하시면 적립금 300원을 드려요!