SlideShare une entreprise Scribd logo
저장장치
rudalson@gmail.com
Harddisk
디스크의 구조
디스크의 기하학
CHS vs LBA
Sector 확인
# fdisk -lu /dev/sda
Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders, total 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00060d5a
Device Boot Start End Blocks Id System
/dev/sda1 2048 20482047 10240000 83 Linux
/dev/sda2 20482048 30722047 5120000 83 Linux
/dev/sda3 30722048 34818047 2048000 82 Linux swap / Solaris
/dev/sda4 34818048 62914559 14048256 5 Extended
/dev/sda5 34820096 36868095 1024000 83 Linux
/dev/sda6 * 36870144 62914559 13022208 83 Linux
Advanced Format
4K Read-Modify-Write
AF로 얻을 수 있는 효율성
논리 섹터 크기
• Windows
• fsutil fsinfo ntfsinfo D:
• 섹터당 바이트: 512
• Linux
• parted /dev/sdb print
• 섹터 크기(논리/물리적): 512B/4096B
디스크 크기 증가가 가능했던 이유
플래터 기록방식
데이터 인코딩
RLL
ZBR(Zone Bit Recording)
양면 기록 방식
공정의 발달
집적도 향상
Floppy Disk
Solid
State
Drive
인터페이스별로
SSD
• NAND 플래시 메모리 셀
• 수명제한(Wearing-off)
• Cell Type
• SLC, MLC, TLC
• Program/Erase
Latency
Architecture of a solid-state drive
삼성 SSD 840 Pro (512GB) - 2013.08
• 1 SATA 3.0 인터페이스
• 1 SSD 컨트롤러 (삼성 MDX S4LN021X01-8030)
• 1 RAM 모듈 (256MB DDR2 삼성 K4P4G324EB-FGC2)
• 8 MLC NAND - 플래시 모듈, 각 모듈은 64GB (삼성 K9PHGY8U7A-CCK0)
Micron P420m Enterprise PCIe
• 8 lane PCI Express 2.0 인터페이스
• 1 SSD 컨트롤러
• 1 RAM 모듈 (DRAM DDR3)
• 64 MLC NAND - 플래시 모듈, 각 모듈은 32GB
• 2TB (provisioning제외 1.4TB 사용)
IO Access
• Read/Write
• Page 단위 (2KB, 4KB, 8KB, 16KB)
• Erase
• Block 단위 (256KB~4MB)
• 128~256개의 Page
• Cannot be overwritten
• Read-Modify-Write
• Page state - free, stale
• Write amplification
• Page align, Buffering
• Wear leveling
• FTL
Flash Translation Layer
HDD와 동일한 인터페이스
1. Logical block mapping
a. LBA <-> PBA
b. Block & Page 레벨 매핑의 trade-off
c. Log structured filesystem과 비슷한 형태
2. Garbage-collection
a. stale -> free
그 외
1. TRIM
a. ext4 ~
b. NTFS Windows 7(PCIe 제외) ~
c. GC의 erase작업이 효율적으로 처리 될 수 있도록
d. 컨트롤러, OS, 파일시스템에서 모두 지원해야 기능할 수 있음
2. Over-provisioning
a. 성능 및 wear leveling에 도움
3. NCQ(Native Command Queuing)
a. HDD에도 있던 기술이지만 SSD에서도 좋음
SAS vs SATA
Volume
Partition
그냥 자른거
Not Volume
MBR
Master Boot Record
범위 (Byte Range) 설명 (Decription) 크기 (Size)
10 진수 16 진수
0 – 445 0x0000 – 0x01BD Boot code 446 bytes
446 – 461 0x01BE – 0x01CD Partition table entry #1 16 bytes
462 – 477 0x01CE – 0x01DD Partition table entry #2 16 bytes
478 – 493 0x01DE – 0x01ED Partition table entry #3 16 bytes
494 – 509 0x01EE – 0x01FD Partition table entry #4 16 bytes
510 – 511 0x01FE – 0x01FF Signature (0x55AA) 2 bytes
Partition entry
범위 (Byte Range) 설명 (Decription) 크기 (Size)
10 진수 16 진수
0 – 0 0x0000 – 0x0000 Boot Indicator
00 = do not use for booting
80 = system partition
1 byte
1 – 3 0x0001 – 0x0003 Starting CHS address 3 bytes
4 – 4 0x0004 – 0x0004 Partition type 1 byte
5 – 7 0x0005 – 0x0007 Ending CHS address 3 bytes
8 – 11 0x0008 – 0x000B Starting LBA address 4 bytes
12 – 15 0x000C – 0x000F Total sectors 4 bytes
MBR Sector
VBR
• 클러스터 크기
• MFT 위치
• 전체 섹터 등 해당 볼륨의 추가적인 정보
• 부팅에 필요한 시스템 파일의 위치와 실행할 수 있는 코드 포함
Cluster Size (Byte) VBR Size (Sector)
512 1
1K 2
2K 4
4K 8
What is Volume?
• Logical drive
• A single accessible storage
area
• A single filesystem
• Block device - 일정크기(block)
단위로 접근하는 장치
• Filesystem - 파일 단위 접근
1. 파일시스템으로부터 Block IO
요청을 받고
2. 스케줄링
3. block device로 commit
I/O
• Read (disk -> memory)
• Write (memory-> disk)
• Buffer VS Cache
• Filesystem과 Disk에서 r/w access 하는 단위가 다름 (bio or IRP, sector)
• 물리장치가 가지고 있는 특성에 맞는 request 조절이 필요
IO Scheduler (Linux)
• Filesystem으로부터 들어온
request들을 merge & sort
• 보통 HDD의 특성에 맞춰져 있
음
• Seek & rotation time 최소화
• SSD의 특성을 반영한 수정도
활발히 이루어짐
1. Noop
2. Deadline
3. CFQ(Complete Fair Queuing)
File system
(Local)
What is File system?
“파일 시스템은 컴퓨터에서 파일이나
자료를 쉽게 발견 및 접근할 수 있도
록 보관 또는 조직하는 체제를 가리키
는 말이다.” - Wiki
• 기본요소
• 클러스터
• 파일
• 디렉토리
• 부가요소
• 소유권
• 동기화
• 일관성(Consistency) 체크
• 저널링
• 보안
• 압축
File Systems
• Disk file systems
• Unix 계열
• Linux
• ext, ext2, ext3, ext4, XFS, ReiserFS, BTRFS, ZFS
• Solraris
• ZFS
• MS Windows
• FAT, NTFS, ReFS
• Database file systems
• Network file systems
• NFS, SMB
• Special file systems
• Proc, sysfs, udev
Windows Storage Stack
Linux Storage Stack
FAT (File Allocation Table)
• FAT12, FAT16, FAT32, exFAT
• 초기 MS의 OS에서 사용
NTFS (New Technology File System)
• 현재 MS 윈도우즈의 표준 파일 시스템
• 정확한 기술공개를 하지 않고 있음
• Versions
• V1.0 (1993) - NT 3.1
• V1.1 (1995) - NT 3.51. +압축
• V1.2 (1996) - NT 4.0
• V3.0 - Windows 2000. +encrypting, sparse, qutas
• V3.1 (2001) - Windows XP. Expanded MFT
• 이후는 기능 추가만
• Symbolic links, Transactional, partition shrinking, self-healing and so on
• B+ tree
NTFS Features
• Scalibilty
• Journaling
• Alternate data streams
• File compression
• Sparse files
• Volume Shadow Copy
• Transactions
• Security, Encryption
• Reparse points
• Resizing
ReFS (Resilient File System)
복원력 있는 파일 시스템
• 체크섬을 포함한 메타데이터 무결성
• 선택적 사용자 데이터 무결성을 제공하는 무결성 스트림
• 강력한 디스크 업데이트를 위한 쓰기 시 할당 트랜잭션 모델
• 대용량 볼륨, 파일 및 디렉터리 크기
• 저장소 풀 구성과 가상화로 파일 시스템 생성과 관리 용이성 개선
• 성능 개선(대역폭을 관리할 수 있음)을 위한 데이터 스트라이핑 및 장애 복구에 대비한 이중화
• 숨겨진 디스크 오류로부터 보호해 주는 디스크 스크러빙
• ‘복원’을 통해 손상에 대한 복원력을 제공하여 모든 경우에 최대의 볼륨 가용성 유지
• 다수의 시스템상에서 공유 저장소 풀을 구성하여 장애 복구 능력과 부하 균형 조절 능력 개선
- MSDN 문서중
Linux Filesystem
• Ext (Extended file system)
• inode
• Minix에서 사용되던 파일시스템에서 벗어나 Linux용으로 나온 파일시스템
• ext4 까지 나오는 동안 리눅스 주력 파일시스템
• VFS와 연동
• Ext3
• Ext2에 journaling 기능 추가
• Hashed btree
• Ext4
• 대형 파일 시스템 (1 EB지원, 16 TB 파일)
• Extent 단위 (ext2, 3은 block mapping)
• ReiserFS
• XFS
ZFS, BTRFS
• 차세대 파일시스템
• 하지만 아직 갈길이 멀다
• 기존 파일시스템이 가져야할 요소는 다 가지고 있다.
• COW
• 파일 시스템이 RAID 지원
• 파일 시스템이 Dedup 지원
• 파일 시스템이 Snapshot 지원
• Incremental backup 지원
• 파일 시스템이….. 하여간 많다.
Storage
JBOD(Just a Bunch Of Disk)
DAS NAS SAN
• Direct Attached Storage
• Network Attached Storage
• NFS, CIFS
• Storage Area Network
• FC, Ethernet
• ISCSI
• HBA
DAS & SAN
• LUN
• Zone
• WWN
• SAN Switch
• Brocade
Clustered File System
• Shared-disk file system
• Veritas Cluster File System (VCFS)
• Microsoft Cluster Shared Volumes (CSV)
• Oracle Cluster File System (OCFS)
• Redhat GFS …
• 비싼것들
• Distributed file system
• HDFS
• Ceph
• GlusterFS
• Windows Distributed File System(DFS)
Distributed File System
Distributed File System
1. 기존 형태로는 확장, 동기화, 가용성이
떨어짐
2. 서버 여러대를 하나처럼…
3. 객체 기반 파일시스템
1. Object Based File System
4. Meta와 Data 분리
1. Meta - 파일명, 크기, path, 접근시간, ACL
2. Data - 실 data
5. Replica!!!
Object File System
객체 기반 스토리지
• 파일시스템
• Kernel
• FUSE(File system in User SpacE)
• 메타데이터 서버
• 클라이언트의 파일관련 요청조정
• 인증 및 권한 관리
• 객체 스토리지 상태 모니터링 관리
• Cache coherency 관리 (분산 lock 등)
• 용량 관리
• 네트워크
• 프로토콜 - RPC, ISCSI, RDMA
• 물리 장치 - Ethernet, FC, Infiniband
HDFS
• Google File System 클론
• 구성
• NameNode(메타서버)
• Secondary
• Master & Slave
• DataNode
• 64MB block chunk
• HDFS 2.0 - 128MB
• random access는 불가
• No MDS
• DHT(동적 해시테이블 알고리즘)
• Consistent Hashing Table
• Brick
• FUSE, NFS, CIFS
• GlusterFS Volume
• 복제
• 파일기반
• 주브릭과 복제브릭에서 동시에
• 실패시 일단 놔둔다
• IO요청시 싱크
• 2007. Sage Weil 의 논문에서 시작
• Linux kernel 2.6.34 포함
• 주요기술
• RADOS – distributed object storage cluster (2005)
• EBOFS – local object storage (2004/2006)
• CRUSH – hashing for the real world (2005)
• Paxos monitors – cluster consensus (2006)
메타데이터 관리
• Dynamic subtree
• Static subtree 모델보다
느리지만 대규모 서비스
에서 변경, 장애에 대해 더
나은 방식
복제관리
• CRUSH(Controlled Replication Under Scalable Hashing) 알고리즘
• 이런걸 쓴다카더라.
References
• Kakao Tech - 개발자를 위한 SSD(Coding for SSD)
• Forensic-proof
• Naver D2 - SSD는 소프트웨어 아키텍처를 어떻게 바꾸고 있는가?
• Naver D2 - SSD를 쓰면 DBMS가 빨라질까?
• Intel - SAS vs SATA Spec 비교
• [Linux] 블록 장치 I/O 동작방식 1~4
• Linux 2.6 I/O Scheduler Configuration
• Operating System Inside – General
• 차세대 Windows 파일 시스템 개발: ReFS
• 확장성, 복원력 및 효율성을 위한 저장소 가상화
• 임베디드 개발자를 위한 파일시스템의 원리와 실습
• Naver D2 - 어떤 분산 파일 시스템을 사용해야 하는가?
• 실전 클라우드 인프라 구축 기술

Contenu connexe

Tendances

Talk IT_ Oracle_최재규_110823
Talk IT_ Oracle_최재규_110823Talk IT_ Oracle_최재규_110823
Talk IT_ Oracle_최재규_110823
Cana Ko
 
Glusterfs 구성제안서 v1.0
Glusterfs 구성제안서 v1.0Glusterfs 구성제안서 v1.0
Glusterfs 구성제안서 v1.0
sprdd
 
Glusterfs 소개 v1.0_난공불락세미나
Glusterfs 소개 v1.0_난공불락세미나Glusterfs 소개 v1.0_난공불락세미나
Glusterfs 소개 v1.0_난공불락세미나
sprdd
 
ITs 2주차_기본명령어(발표)
ITs 2주차_기본명령어(발표)ITs 2주차_기본명령어(발표)
ITs 2주차_기본명령어(발표)
Chulgyu Shin
 
2node cluster
2node cluster2node cluster
2node cluster
sprdd
 
하둡완벽가이드 Ch9
하둡완벽가이드 Ch9하둡완벽가이드 Ch9
하둡완벽가이드 Ch9
HyeonSeok Choi
 
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
sung ki choi
 

Tendances (18)

Talk IT_ Oracle_최재규_110823
Talk IT_ Oracle_최재규_110823Talk IT_ Oracle_최재규_110823
Talk IT_ Oracle_최재규_110823
 
Glusterfs 구성제안서 v1.0
Glusterfs 구성제안서 v1.0Glusterfs 구성제안서 v1.0
Glusterfs 구성제안서 v1.0
 
하둡 HDFS 훑어보기
하둡 HDFS 훑어보기하둡 HDFS 훑어보기
하둡 HDFS 훑어보기
 
Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario ChoLinux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
 
Linux 강의자료 ed10
Linux 강의자료 ed10Linux 강의자료 ed10
Linux 강의자료 ed10
 
Introduction to Linux #1
Introduction to Linux #1Introduction to Linux #1
Introduction to Linux #1
 
하둡관리
하둡관리하둡관리
하둡관리
 
Cloudoc supermicro mini_svr_appliance_kor_20171019
Cloudoc supermicro mini_svr_appliance_kor_20171019Cloudoc supermicro mini_svr_appliance_kor_20171019
Cloudoc supermicro mini_svr_appliance_kor_20171019
 
Glusterfs 소개 v1.0_난공불락세미나
Glusterfs 소개 v1.0_난공불락세미나Glusterfs 소개 v1.0_난공불락세미나
Glusterfs 소개 v1.0_난공불락세미나
 
Hdfs
HdfsHdfs
Hdfs
 
ITs 2주차_기본명령어(발표)
ITs 2주차_기본명령어(발표)ITs 2주차_기본명령어(발표)
ITs 2주차_기본명령어(발표)
 
WzDat과 Pandas를 통한 로그 데이터 분석
WzDat과 Pandas를 통한 로그 데이터 분석WzDat과 Pandas를 통한 로그 데이터 분석
WzDat과 Pandas를 통한 로그 데이터 분석
 
2node cluster
2node cluster2node cluster
2node cluster
 
(130316) #fitalk trends in d forensics (feb, 2013)
(130316) #fitalk   trends in d forensics (feb, 2013)(130316) #fitalk   trends in d forensics (feb, 2013)
(130316) #fitalk trends in d forensics (feb, 2013)
 
하둡완벽가이드 Ch9
하둡완벽가이드 Ch9하둡완벽가이드 Ch9
하둡완벽가이드 Ch9
 
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
 
(111217) #fitalk windows system structure
(111217) #fitalk   windows system structure(111217) #fitalk   windows system structure
(111217) #fitalk windows system structure
 
How ntfs works br
How ntfs works brHow ntfs works br
How ntfs works br
 

En vedette

Python과 flask 입문(1)
Python과 flask 입문(1)Python과 flask 입문(1)
Python과 flask 입문(1)
성천 이
 

En vedette (20)

Processor
ProcessorProcessor
Processor
 
City opt - Green Gamification - Manu Melwin Joy
City opt - Green Gamification - Manu Melwin JoyCity opt - Green Gamification - Manu Melwin Joy
City opt - Green Gamification - Manu Melwin Joy
 
объекты и классы
объекты и классыобъекты и классы
объекты и классы
 
Danube Resortz in Dubai Brochure +971 4553 8725
Danube Resortz in Dubai Brochure +971 4553 8725Danube Resortz in Dubai Brochure +971 4553 8725
Danube Resortz in Dubai Brochure +971 4553 8725
 
Практикум 9
Практикум 9Практикум 9
Практикум 9
 
[NEXT] Flask 로 Restful API 서버 만들기
[NEXT] Flask 로 Restful API 서버 만들기 [NEXT] Flask 로 Restful API 서버 만들기
[NEXT] Flask 로 Restful API 서버 만들기
 
Python과 flask 입문(1)
Python과 flask 입문(1)Python과 flask 입문(1)
Python과 flask 입문(1)
 
파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)
 
파이썬 플라스크로 배우는 웹프로그래밍 #4 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #4 (ABCD)파이썬 플라스크로 배우는 웹프로그래밍 #4 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #4 (ABCD)
 
파이썬 플라스크로 배우는 웹프로그래밍 #2 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #2 (ABCD)파이썬 플라스크로 배우는 웹프로그래밍 #2 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #2 (ABCD)
 
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
 
Software and IT
Software and ITSoftware and IT
Software and IT
 
2016 annual report
2016 annual report 2016 annual report
2016 annual report
 
SYD10102 fiqh ibadat-solat
SYD10102 fiqh ibadat-solatSYD10102 fiqh ibadat-solat
SYD10102 fiqh ibadat-solat
 
Tecnologia net (empresa) ITsolution
Tecnologia net (empresa) ITsolutionTecnologia net (empresa) ITsolution
Tecnologia net (empresa) ITsolution
 
SGA Workshop 2016
SGA Workshop 2016SGA Workshop 2016
SGA Workshop 2016
 
Solar Cell & Module Supplier - India (01.02.17)
Solar Cell & Module Supplier - India (01.02.17)Solar Cell & Module Supplier - India (01.02.17)
Solar Cell & Module Supplier - India (01.02.17)
 
Replication in Data Science
Replication in Data ScienceReplication in Data Science
Replication in Data Science
 
Творческое мышление в интернет-проектах
Творческое мышление в интернет-проектахТворческое мышление в интернет-проектах
Творческое мышление в интернет-проектах
 
Pré-working Expedição Design
Pré-working Expedição DesignPré-working Expedição Design
Pré-working Expedição Design
 

Similaire à 저장장치

포렌식 세미나.pptx
포렌식 세미나.pptx포렌식 세미나.pptx
포렌식 세미나.pptx
dalonn
 
Glusterfs 구성제안서 v1.0
Glusterfs 구성제안서 v1.0Glusterfs 구성제안서 v1.0
Glusterfs 구성제안서 v1.0
sprdd
 
Glusterfs 구성제안 v1.0
Glusterfs 구성제안 v1.0Glusterfs 구성제안 v1.0
Glusterfs 구성제안 v1.0
sprdd
 
Glusterfs 파일시스템 구성_및 운영가이드_v2.0
Glusterfs 파일시스템 구성_및 운영가이드_v2.0Glusterfs 파일시스템 구성_및 운영가이드_v2.0
Glusterfs 파일시스템 구성_및 운영가이드_v2.0
sprdd
 

Similaire à 저장장치 (20)

Object storage의 이해와 활용
Object storage의 이해와 활용Object storage의 이해와 활용
Object storage의 이해와 활용
 
실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch8실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch8
 
[2016 데이터 그랜드 컨퍼런스] 2 1(빅데이터). 티맥스 빅데이터시대,더욱중요해진dw를위한어플라이언스전략
[2016 데이터 그랜드 컨퍼런스] 2 1(빅데이터). 티맥스 빅데이터시대,더욱중요해진dw를위한어플라이언스전략[2016 데이터 그랜드 컨퍼런스] 2 1(빅데이터). 티맥스 빅데이터시대,더욱중요해진dw를위한어플라이언스전략
[2016 데이터 그랜드 컨퍼런스] 2 1(빅데이터). 티맥스 빅데이터시대,더욱중요해진dw를위한어플라이언스전략
 
HDFS Overview
HDFS OverviewHDFS Overview
HDFS Overview
 
IBM Storage for AI - NVMe & Spectrum Scale 기술을 탑재한 ESS3000
IBM Storage for AI - NVMe & Spectrum Scale 기술을 탑재한 ESS3000IBM Storage for AI - NVMe & Spectrum Scale 기술을 탑재한 ESS3000
IBM Storage for AI - NVMe & Spectrum Scale 기술을 탑재한 ESS3000
 
포렌식 세미나.pptx
포렌식 세미나.pptx포렌식 세미나.pptx
포렌식 세미나.pptx
 
Glusterfs 구성제안서 v1.0
Glusterfs 구성제안서 v1.0Glusterfs 구성제안서 v1.0
Glusterfs 구성제안서 v1.0
 
Glusterfs 구성제안 v1.0
Glusterfs 구성제안 v1.0Glusterfs 구성제안 v1.0
Glusterfs 구성제안 v1.0
 
Ssscon forensic pt
Ssscon forensic ptSsscon forensic pt
Ssscon forensic pt
 
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
 
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
 
Glusterfs 파일시스템 구성_및 운영가이드_v2.0
Glusterfs 파일시스템 구성_및 운영가이드_v2.0Glusterfs 파일시스템 구성_및 운영가이드_v2.0
Glusterfs 파일시스템 구성_및 운영가이드_v2.0
 
20140806 AWS Meister BlackBelt - Amazon Redshift (Korean)
20140806 AWS Meister BlackBelt - Amazon Redshift (Korean)20140806 AWS Meister BlackBelt - Amazon Redshift (Korean)
20140806 AWS Meister BlackBelt - Amazon Redshift (Korean)
 
Hdfs
HdfsHdfs
Hdfs
 
[IBM 김상훈] NAS_IBM Spectrum NAS 상세 설명
[IBM 김상훈] NAS_IBM Spectrum NAS 상세 설명[IBM 김상훈] NAS_IBM Spectrum NAS 상세 설명
[IBM 김상훈] NAS_IBM Spectrum NAS 상세 설명
 
Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013
 
그림으로 공부하는 오라클 구조
그림으로 공부하는 오라클 구조그림으로 공부하는 오라클 구조
그림으로 공부하는 오라클 구조
 
[오픈소스컨설팅] About Storage Cloud
[오픈소스컨설팅] About Storage Cloud [오픈소스컨설팅] About Storage Cloud
[오픈소스컨설팅] About Storage Cloud
 
AIX - LVM 이란?
AIX - LVM 이란?AIX - LVM 이란?
AIX - LVM 이란?
 
백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나
 

저장장치

  • 6. Sector 확인 # fdisk -lu /dev/sda Disk /dev/sda: 32.2 GB, 32212254720 bytes 255 heads, 63 sectors/track, 3916 cylinders, total 62914560 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00060d5a Device Boot Start End Blocks Id System /dev/sda1 2048 20482047 10240000 83 Linux /dev/sda2 20482048 30722047 5120000 83 Linux /dev/sda3 30722048 34818047 2048000 82 Linux swap / Solaris /dev/sda4 34818048 62914559 14048256 5 Extended /dev/sda5 34820096 36868095 1024000 83 Linux /dev/sda6 * 36870144 62914559 13022208 83 Linux
  • 9. AF로 얻을 수 있는 효율성
  • 10. 논리 섹터 크기 • Windows • fsutil fsinfo ntfsinfo D: • 섹터당 바이트: 512 • Linux • parted /dev/sdb print • 섹터 크기(논리/물리적): 512B/4096B
  • 11. 디스크 크기 증가가 가능했던 이유 플래터 기록방식 데이터 인코딩 RLL ZBR(Zone Bit Recording) 양면 기록 방식 공정의 발달 집적도 향상
  • 15. SSD • NAND 플래시 메모리 셀 • 수명제한(Wearing-off) • Cell Type • SLC, MLC, TLC • Program/Erase
  • 17. Architecture of a solid-state drive
  • 18. 삼성 SSD 840 Pro (512GB) - 2013.08 • 1 SATA 3.0 인터페이스 • 1 SSD 컨트롤러 (삼성 MDX S4LN021X01-8030) • 1 RAM 모듈 (256MB DDR2 삼성 K4P4G324EB-FGC2) • 8 MLC NAND - 플래시 모듈, 각 모듈은 64GB (삼성 K9PHGY8U7A-CCK0)
  • 19. Micron P420m Enterprise PCIe • 8 lane PCI Express 2.0 인터페이스 • 1 SSD 컨트롤러 • 1 RAM 모듈 (DRAM DDR3) • 64 MLC NAND - 플래시 모듈, 각 모듈은 32GB • 2TB (provisioning제외 1.4TB 사용)
  • 20. IO Access • Read/Write • Page 단위 (2KB, 4KB, 8KB, 16KB) • Erase • Block 단위 (256KB~4MB) • 128~256개의 Page • Cannot be overwritten • Read-Modify-Write • Page state - free, stale • Write amplification • Page align, Buffering • Wear leveling • FTL
  • 21. Flash Translation Layer HDD와 동일한 인터페이스 1. Logical block mapping a. LBA <-> PBA b. Block & Page 레벨 매핑의 trade-off c. Log structured filesystem과 비슷한 형태 2. Garbage-collection a. stale -> free
  • 22. 그 외 1. TRIM a. ext4 ~ b. NTFS Windows 7(PCIe 제외) ~ c. GC의 erase작업이 효율적으로 처리 될 수 있도록 d. 컨트롤러, OS, 파일시스템에서 모두 지원해야 기능할 수 있음 2. Over-provisioning a. 성능 및 wear leveling에 도움 3. NCQ(Native Command Queuing) a. HDD에도 있던 기술이지만 SSD에서도 좋음
  • 26. MBR Master Boot Record 범위 (Byte Range) 설명 (Decription) 크기 (Size) 10 진수 16 진수 0 – 445 0x0000 – 0x01BD Boot code 446 bytes 446 – 461 0x01BE – 0x01CD Partition table entry #1 16 bytes 462 – 477 0x01CE – 0x01DD Partition table entry #2 16 bytes 478 – 493 0x01DE – 0x01ED Partition table entry #3 16 bytes 494 – 509 0x01EE – 0x01FD Partition table entry #4 16 bytes 510 – 511 0x01FE – 0x01FF Signature (0x55AA) 2 bytes
  • 27. Partition entry 범위 (Byte Range) 설명 (Decription) 크기 (Size) 10 진수 16 진수 0 – 0 0x0000 – 0x0000 Boot Indicator 00 = do not use for booting 80 = system partition 1 byte 1 – 3 0x0001 – 0x0003 Starting CHS address 3 bytes 4 – 4 0x0004 – 0x0004 Partition type 1 byte 5 – 7 0x0005 – 0x0007 Ending CHS address 3 bytes 8 – 11 0x0008 – 0x000B Starting LBA address 4 bytes 12 – 15 0x000C – 0x000F Total sectors 4 bytes
  • 29. VBR • 클러스터 크기 • MFT 위치 • 전체 섹터 등 해당 볼륨의 추가적인 정보 • 부팅에 필요한 시스템 파일의 위치와 실행할 수 있는 코드 포함 Cluster Size (Byte) VBR Size (Sector) 512 1 1K 2 2K 4 4K 8
  • 30.
  • 31. What is Volume? • Logical drive • A single accessible storage area • A single filesystem • Block device - 일정크기(block) 단위로 접근하는 장치 • Filesystem - 파일 단위 접근 1. 파일시스템으로부터 Block IO 요청을 받고 2. 스케줄링 3. block device로 commit
  • 32. I/O • Read (disk -> memory) • Write (memory-> disk) • Buffer VS Cache • Filesystem과 Disk에서 r/w access 하는 단위가 다름 (bio or IRP, sector) • 물리장치가 가지고 있는 특성에 맞는 request 조절이 필요
  • 33. IO Scheduler (Linux) • Filesystem으로부터 들어온 request들을 merge & sort • 보통 HDD의 특성에 맞춰져 있 음 • Seek & rotation time 최소화 • SSD의 특성을 반영한 수정도 활발히 이루어짐 1. Noop 2. Deadline 3. CFQ(Complete Fair Queuing)
  • 35. What is File system? “파일 시스템은 컴퓨터에서 파일이나 자료를 쉽게 발견 및 접근할 수 있도 록 보관 또는 조직하는 체제를 가리키 는 말이다.” - Wiki • 기본요소 • 클러스터 • 파일 • 디렉토리 • 부가요소 • 소유권 • 동기화 • 일관성(Consistency) 체크 • 저널링 • 보안 • 압축
  • 36. File Systems • Disk file systems • Unix 계열 • Linux • ext, ext2, ext3, ext4, XFS, ReiserFS, BTRFS, ZFS • Solraris • ZFS • MS Windows • FAT, NTFS, ReFS • Database file systems • Network file systems • NFS, SMB • Special file systems • Proc, sysfs, udev
  • 39. FAT (File Allocation Table) • FAT12, FAT16, FAT32, exFAT • 초기 MS의 OS에서 사용
  • 40. NTFS (New Technology File System) • 현재 MS 윈도우즈의 표준 파일 시스템 • 정확한 기술공개를 하지 않고 있음 • Versions • V1.0 (1993) - NT 3.1 • V1.1 (1995) - NT 3.51. +압축 • V1.2 (1996) - NT 4.0 • V3.0 - Windows 2000. +encrypting, sparse, qutas • V3.1 (2001) - Windows XP. Expanded MFT • 이후는 기능 추가만 • Symbolic links, Transactional, partition shrinking, self-healing and so on • B+ tree
  • 41. NTFS Features • Scalibilty • Journaling • Alternate data streams • File compression • Sparse files • Volume Shadow Copy • Transactions • Security, Encryption • Reparse points • Resizing
  • 42. ReFS (Resilient File System) 복원력 있는 파일 시스템 • 체크섬을 포함한 메타데이터 무결성 • 선택적 사용자 데이터 무결성을 제공하는 무결성 스트림 • 강력한 디스크 업데이트를 위한 쓰기 시 할당 트랜잭션 모델 • 대용량 볼륨, 파일 및 디렉터리 크기 • 저장소 풀 구성과 가상화로 파일 시스템 생성과 관리 용이성 개선 • 성능 개선(대역폭을 관리할 수 있음)을 위한 데이터 스트라이핑 및 장애 복구에 대비한 이중화 • 숨겨진 디스크 오류로부터 보호해 주는 디스크 스크러빙 • ‘복원’을 통해 손상에 대한 복원력을 제공하여 모든 경우에 최대의 볼륨 가용성 유지 • 다수의 시스템상에서 공유 저장소 풀을 구성하여 장애 복구 능력과 부하 균형 조절 능력 개선 - MSDN 문서중
  • 43. Linux Filesystem • Ext (Extended file system) • inode • Minix에서 사용되던 파일시스템에서 벗어나 Linux용으로 나온 파일시스템 • ext4 까지 나오는 동안 리눅스 주력 파일시스템 • VFS와 연동 • Ext3 • Ext2에 journaling 기능 추가 • Hashed btree • Ext4 • 대형 파일 시스템 (1 EB지원, 16 TB 파일) • Extent 단위 (ext2, 3은 block mapping) • ReiserFS • XFS
  • 44. ZFS, BTRFS • 차세대 파일시스템 • 하지만 아직 갈길이 멀다 • 기존 파일시스템이 가져야할 요소는 다 가지고 있다. • COW • 파일 시스템이 RAID 지원 • 파일 시스템이 Dedup 지원 • 파일 시스템이 Snapshot 지원 • Incremental backup 지원 • 파일 시스템이….. 하여간 많다.
  • 46. JBOD(Just a Bunch Of Disk)
  • 47. DAS NAS SAN • Direct Attached Storage • Network Attached Storage • NFS, CIFS • Storage Area Network • FC, Ethernet • ISCSI • HBA
  • 48. DAS & SAN • LUN • Zone • WWN • SAN Switch • Brocade
  • 49. Clustered File System • Shared-disk file system • Veritas Cluster File System (VCFS) • Microsoft Cluster Shared Volumes (CSV) • Oracle Cluster File System (OCFS) • Redhat GFS … • 비싼것들 • Distributed file system • HDFS • Ceph • GlusterFS • Windows Distributed File System(DFS)
  • 51. Distributed File System 1. 기존 형태로는 확장, 동기화, 가용성이 떨어짐 2. 서버 여러대를 하나처럼… 3. 객체 기반 파일시스템 1. Object Based File System 4. Meta와 Data 분리 1. Meta - 파일명, 크기, path, 접근시간, ACL 2. Data - 실 data 5. Replica!!!
  • 53. 객체 기반 스토리지 • 파일시스템 • Kernel • FUSE(File system in User SpacE) • 메타데이터 서버 • 클라이언트의 파일관련 요청조정 • 인증 및 권한 관리 • 객체 스토리지 상태 모니터링 관리 • Cache coherency 관리 (분산 lock 등) • 용량 관리 • 네트워크 • 프로토콜 - RPC, ISCSI, RDMA • 물리 장치 - Ethernet, FC, Infiniband
  • 54. HDFS • Google File System 클론 • 구성 • NameNode(메타서버) • Secondary • Master & Slave • DataNode • 64MB block chunk • HDFS 2.0 - 128MB • random access는 불가
  • 55. • No MDS • DHT(동적 해시테이블 알고리즘) • Consistent Hashing Table • Brick • FUSE, NFS, CIFS • GlusterFS Volume • 복제 • 파일기반 • 주브릭과 복제브릭에서 동시에 • 실패시 일단 놔둔다 • IO요청시 싱크
  • 56. • 2007. Sage Weil 의 논문에서 시작 • Linux kernel 2.6.34 포함 • 주요기술 • RADOS – distributed object storage cluster (2005) • EBOFS – local object storage (2004/2006) • CRUSH – hashing for the real world (2005) • Paxos monitors – cluster consensus (2006)
  • 57. 메타데이터 관리 • Dynamic subtree • Static subtree 모델보다 느리지만 대규모 서비스 에서 변경, 장애에 대해 더 나은 방식
  • 58. 복제관리 • CRUSH(Controlled Replication Under Scalable Hashing) 알고리즘 • 이런걸 쓴다카더라.
  • 59. References • Kakao Tech - 개발자를 위한 SSD(Coding for SSD) • Forensic-proof • Naver D2 - SSD는 소프트웨어 아키텍처를 어떻게 바꾸고 있는가? • Naver D2 - SSD를 쓰면 DBMS가 빨라질까? • Intel - SAS vs SATA Spec 비교 • [Linux] 블록 장치 I/O 동작방식 1~4 • Linux 2.6 I/O Scheduler Configuration • Operating System Inside – General • 차세대 Windows 파일 시스템 개발: ReFS • 확장성, 복원력 및 효율성을 위한 저장소 가상화 • 임베디드 개발자를 위한 파일시스템의 원리와 실습 • Naver D2 - 어떤 분산 파일 시스템을 사용해야 하는가? • 실전 클라우드 인프라 구축 기술