4. 4
iSCSI
iSCSI 정의 및 LIO Target 서버
• SCSI 커맨드를 IP 네트워크를 사용하여 전달하는 프로토콜
• iSCSI Target 서버가 LIO 패키지를 이용하여 , 블럭 디바이스 (LUN) 를 export
• Client 서버의 iSCSI initiator 를 이용하고 , IP 네트워크를 이용하여
Target 서버의 블럭 디바이스 연결
• Linux, Windows, VMWare 등의 다양한 플랫폼에서 기본으로 initiator 제공
Block
Device
Linux
Target Server
iSCSI
Target
Driver
iSCSI
initiator
Wind
dows
iSCSI
initiator
ESXiiSCSI
initiator
6. 6
이전의 iSCSI 활용 방법
RBD(1/2)
• RADOS Block Device
• RADOS objects 로 구성된 블럭 디바이스
• 기능
• Object 는 설정에 의해 Ceph OSD 들로 복제 됨
• Thin provision 기능
• 온라인 디스크 사이즈 조정
• 스냅샷 및 복제
• 제한 사항
• 리눅스 커널이나 librbd 클라이언트에 의해서만 사용 가능
7. 7
이전의 iSCSI 활용 방법
아키텍처
RBD
iSCSI
Target
Driver
LIO Target Server
R
A
D
O
S
rbd.ko
LinuxiSCSI
initiator
Wind
dows
iSCSI
initiator
ESXiiSCSI
initiator
8. 8
이전의 iSCSI 활용 방법
문제점
• 불필요한 단계
• LIO 를 통해 iSCSI 를 블럭 디바이스로 전달 .
• RBD 를 통해 블럭 디바이스로 전달된 값이 , Ceph 프로토콜로 변환
• 블럭디바이스 중간 단계 불필요
• Active/Active Multipath IO 지원 불가
• Atomic compare and write 지원 불가
• Persistent Group Reservation 지원 불가
9. 9
이전의 iSCSI 활용 방법
멀티패스 ?
RBD
iSCSI
Target
Driver
LIO Target Server 1
R
A
D
O
S
rbd.ko
RBD
iSCSI
Target
Driver
LIO Target Server 2
rbd.ko
iSCSI
initiator
Linux Client
10. 10
SUSE Enterprise Storage iSCSI gateway
아키텍처
iSCSI
Target
Driver
LIO Target Server
R
A
D
O
S
rbd.ko
rbd
backstore
module
• 이전 방법 : iSCSI IO > Block Device > Ceph OSD Requests
• SUSE : iSCSI IO > Ceph OSD Requests
LinuxiSCSI
initiator
Wind
dows
iSCSI
initiator
ESXiiSCSI
initiator
11. 11
SUSE Enterprise Storage iSCSI gateway
구성
• LIO 타켓 패키지
• RBD backstore module
• iSCSI IO 를 Ceph OSD request 로 변환
• 배타적으로 디바이스를 엑세스해야 하는 경우 핸들링
• Atomic COMPARE AND WRITE, WRITE SAME and reservations
• lrbd : Multi-node configuration utility
• iSCSI 타켓 설정을 targetcli 를 통하여 멀티노드에 동일하게 설정
• JSON 포멧
• Target, Portal, RBD image, authentication 정보 설정에 포함
• iSCSI Gateway 설정은 Ceph Cluster 에 저장되며 부팅시에 로드
12. 12
SUSE Enterprise Storage iSCSI gateway
멀티패스 지원
• Initiator 으로부터 타켓 서버로의 다중 패스
• 하나의 Initiator 가 두개의 타켓 서버에 연결 .
iSCSI 타켓 서버들에서 같은 RBD image 를 export 함으로 가능 .
• iSCSI 타켓 서버의 네트워크 인터페이스 또한 멀티패스로 구성
• 다중 패스를 어떻게 사용 할지는 initiator 에서의 설정
• iSCSI discovery 단계에서 사용 가능한 패스가 찾아짐
• Round-robin 또는 failover/failback 선택
13. 13
SUSE Enterprise Storage iSCSI gateway
멀티패스 지원 / 데모 영상
rbd
backstore
module
iSCSI
Target
Driver
LIO Target Server 1
R
A
D
O
S
rbd.ko
iSCSI
Target
Driver
LIO Target Server 2
rbd.ko
iSCSI
initiator
Linux Client
rbd
backstore
module
16. 16
OpenATTIC 소개
비전
Open Source :
‒ 상용 스토리지 통합 관리 시스템의 Open Source 대안
Enterprise:
‒ NAS, SAN 등의 기존의 스토리지도 관리
SDS Support:
‒ Ceph 의 설치부터 클러스터 (OSD, RBD, Pool), 서버 ( 디
스크 , CPU) 까지 모니터링 및 관리
다음 버전의 SES 에서 가능 . 현재는 아래의 OpenSUSE 버전 사용
지원 OS : OpenSUSE Leap 42.1, SLES12
https://build.opensuse.org/package/show/filesystems:openATTIC/openattic
17. 17
OpenATTIC 소개
기능
Modern Web UI
RESTful API
‒ Software Defined Storage
Ceph 관리
Unified Storage
‒ NAS (NFS, CIFS, HTTP)
‒ SAN (iSCSI, Fiber
Channel)
Volume Mirroring
‒ DRBD
File System
‒ LVM, XFS, ZFS, Btrfs,
ext3/4
Monitoring
‒ Nagios / Icinga built-in
18. 18
Backend:
‒ Python (Django)
‒ Django REST Framework
‒ Nagios / Icinga &
PNP4Nagios
‒ Linux tools
‒ LVM, LIO, DRBD
‒ Ceph API
‒ librados, librbd
Web Frontend
‒ AngularJS(JS framework)
‒ Bootstrap(HTML, CSS, and JS
framework)
‒ Backend 의 REST API 사용
Automated Test Suites
‒ Python unit tests
‒ Gatling
‒ RESTful API
‒ Protractor / Jasmine
‒ WebUI test
OpenATTIC 소개
컴포넌트
20. 20
• 모니터링하고 관리하는 것이 복잡하다
• 클러스터의 관리는 커맨드 라인
• 클러스터 모니터링은 UI
• 물리 서버의 모니터링은 별도의 툴
• 많은 툴이 존재 한다 (Calamari, Inter VSM, Ceph-dash)
• 대쉬 보드 수준에서 머물러 있음
OpenATTIC 개발
Ceph 애로사항
21. 21
• 하나의 GUI 를 통해 관리와 모니터링
• 관리자가 사용하고 싶은 툴 – 실제로 효율적이고 , 혼란 스럽지 않은
• 불필요한 정보를 너무 많이 보여 주지 않고 , 하지만 문제 발생시 관련 정보를
제공
• 꼭 툴을 통해서가 아닌 , 커맨드를 통해서 Ceph 를 변경하여도 정보의
일관성 유지
OpenATTIC 개발
Ceph 관리 부분 목표
22. 22
OpenATTIC 개발
진행 상태
• RBD 를 생성 및 블럭 디바이스로 맵핑 (volumes)
• Pool management Web UI (table view)
• OSD management Web UI (table view)
• RBD management Web UI (add/delete, table view)
• 클러스터 및 퍼포먼스 모니터링
33. 33
• Kernel 버전 : 4.1(Longterm release kernel)
• File system
• Default root : Btrfs
• 지원 파일 시스템 : Btrfs, ext2/3/4, Xfs
• 안정된 릴리즈
• SLES 와 같은 릴리즈 싸이클
• 마이너 버전사이의 업데이트는 어렵지 않게 많들어짐
openSUSE Leap
개략적 설명 (2/2)
34. 34
Ceph, iSCSI Gateway, openATTIC 가능
Ceph, openATTIC
• Ceph
• https://en.opensuse.org/openSUSE:Ceph
• openATTIC
• # zypper ar -f
http://download.opensuse.org/repositories/home:swiftgist/openSUSE_Leap_42.1/home:swiftgist.repo
• # zypper in openattic
35. 35
Ceph, iSCSI Gateway, openATTIC 가능
iSCSI Gateway
• 레포지토리 추가
• http://download.opensuse.org/repositories/filesystems:/ceph/openSUSE_Leap_42.1/filesystems:ceph.repo
• http://download.opensuse.org/repositories/home:swiftgist/openSUSE_Leap_42.1/home:swiftgist.repo
• 패키지 설치
• Ceph-common, lrbd, targetcli
• Ceph 키링과 설정파일 복사
• Lrbd 설정 및 시작
38. Unpublished Work of SUSE LLC. All Rights Reserved.
This work is an unpublished work and contains confidential, proprietary and trade secret information of SUSE LLC.
Access to this work is restricted to SUSE employees who have a need to know to perform tasks within the scope of
their assignments. No part of this work may be practiced, performed, copied, distributed, revised, modified, translated,
abridged, condensed, expanded, collected, or adapted without the prior written consent of SUSE.
Any use or exploitation of this work without authorization could subject the perpetrator to criminal and civil liability.
General Disclaimer
This document is not to be construed as a promise by any participating company to develop, deliver, or market a
product. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making
purchasing decisions. SUSE makes no representations or warranties with respect to the contents of this document,
and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose.
The development, release, and timing of features or functionality described for SUSE products remains at the sole
discretion of SUSE. Further, SUSE reserves the right to revise this document and to make changes to its content, at
any time, without obligation to notify any person or entity of such revisions or changes. All SUSE marks referenced in
this presentation are trademarks or registered trademarks of Novell, Inc. in the United States and other countries. All
third-party trademarks are the property of their respective owners.
257-000029-003
Editor's Notes
* started to developed About 5 years ago, "Traditional" unified storage(NAS/SAN)
* Ceph suppot for scale-out scenarios
started to developed last years
Rest API
Django : framework
systemd : local
Seperate process running on each node
with root authority
Process to make change to the operating system: write configuration file, restart/stop service, create file system/logical volume,
Linux OS
mkfs, lvcreate triggered by systemd with parameter