** SSD Hot/Cold Separation

Download Report

Transcript ** SSD Hot/Cold Separation

2012 2학기
프로젝트 1 J조
이상선 최성준 조겨리
Project Overview
Specification
Background Study
Implementation
Demo & Result
Schedule & Task Assignment
주소 분할 관리 기법을 이용해서 기존의
Hot / Cold Separation 기법보다 효율적인
Separation 알고리즘을 구현한다.
비교 기법
1. 기존 기법 : 크기 기반 구분 (대조군)
2. ADIVIM기법 : 주소 분할 관리 기법
Project Overview
Specification
Background Study
Implementation
Demo & Result
Schedule & Task Assignment
 Development Environment
 개발 환경 및 언어
 Linux
 C 언어
 개발 도구
 Disksim 4.0
미시간 대학에서 만들어져 CMU에서 개량된 디스크 시뮬레
이터.
 호스트로부터 I/O 명령이 내려오면 컨트롤러, 버스, 디스크
등을 거쳐 명령이 수행되는 것을 시뮬레이션 한다.

 SSD Patch

Disksim에 SSD를 추가해주는 패치. ADIVIM을 구현한 부분.
Input : I/O request로 구성된 trace 파일
시간
디바이스
번호
섹터 번호
섹터 길이
Write / Read
Output : Input으로 받은 request를
처리한 결과에 대한 통계자료
Project Overview
Specification
Background Study
Implementation
Demo & Result
Schedule & Task Assignment
SSD의 한계
 덮어쓰기가 불가능
 write는 page 단위, erase는 block 단위
 해당 block의 모든 page가 invalid해야 erase 가능
혹은 valid한 page의 이동 후 erase 가능
SSD의 계층 구조
 SSD > gang > element > parunit > plane >
block > page
 본 프로젝트에서는 gang과 parunit을 고려하지
않음
Hot/Cold Separation
불필요한 write이나 erase를 최소화하기 위함
Page mapping : mapping table을 위한
상대적으로 큰 메모리 필요
Block mapping : 비효율적 garbage collection
Hybrid mapping :
자주 업데이트 되는 hot data는 page mapping
간헐적으로 업데이트되는 cold data는 block
mapping
Hot/cold의 구분이 필요
Old hot/cold separator (대조군)
 크기 기반 : 예를 들면 Data의 크기가 한 Block
미만이면 Hot, 한 Block 이상이면 Cold
ADIVIM (주소 분할 관리 기법)
 한 파일을 통째로 Hot이나 Cold로 분류
 자주 업데이트되는 파일은 파일 전체가 한 번에
업데이트 될 가능성이 높다는 사실에 착안
 I/O request를 분석, 동시에 access되는 주소 인식
(ex. 2번 이상 write & read 명령이 들어온 연속된
주소)
기존 SSD patch Control Flow
Host
Request
SSD
Page Mapping – Full Striping
e0
e1
e2
e3
e4
e5
e6
e7
Project Overview
Specification
Background Study
Implementation
Demo & Result
Schedule & Task Assignment
Host
Device Driver
Request
SSD
Bus
Host Interface
FTL
주소 매핑
플래시 메모리 관리
e1
...
...
Hybrid Mapping
e0
ADIVIM
Module
ADIVIM
Separator
e2
e3
e4
e5
e6
e7
…
Request
From
Host
ADIVIM
Module
ADIVIM Separator
Hot / Cold
Hot / Cold
Hot
Page Mapping
Block
Cold
Block Mapping
plane
plane
plane
plane
Page
Page
Page
Page
Page
Page
Page
Page
plane
plane
plane
plane
Block
Block
Block
Block
Block
Block
Block
Block
Block
Block
Block
No
Change
Hot
Cold
No
Change
Project Overview
Specification
Background Study
Implementation
Demo & Result
Schedule & Task Assignment
 다음 요소들에 대해 각 방법의 성능 비교
 1. Write Amplification Factor
data written to the flash memory
data written by the host
- 값이 클 수록 불필요한 write가 있었다는 의미
(불필요한 write 의 예 : erase를 위해 valid page를
다른 block으로 옮기는 것)
- 직접 구현하였음.
 2. SSD Lifetime
- 모든 page가 invalid 된 block을 지울 때마다 감소
- SSD Extension output : Average lifetime
 3. Mapping table size
- 자주 안 쓰는 Cold data를 Block으로 저장해둠으로써 Mapping table
size를 줄일 수 있을 것이다
- hot apn 개수 + (cold apn 개수 / 63)
jpeg_copy_2gb_ntfs trace
ADIVIM(r,w): 해당 Data의 Read 횟수가 r 초과,
Write횟수가 w 초과인 경우 Hot, 아니면 Cold
Size – n : Req의 길이 < n 이면
Hot, 아니면 Cold
WAF
70
60
59.0625
50
40
30
WAF
20
10
5.763157895
5.763157895
size_2
Hybrid : size2 +
ADIVIM_0_0
0
size_1 - Block
Mapping
Power pack trace
ADIVIM(r,w): 해당 Data의 Read 횟수가 r 초과,
Write횟수가 w 초과인 경우 Hot, 아니면 Cold
Size – n : Req의 길이 < n 이면
Hot, 아니면 Cold
WAF
16
14
13.9375
13.9375
12
10
8.392857
8
WAF
6
4
2
0
size_1 - Block
Mapping
size_2
Hybrid : size2 +
ADIVIM_0_0
Project Overview
Specification
Background Study
Implementation
Demo & Result
Schedule & Task Assignment
Study
• 이상선
기존 기법 구현
• 조겨리
ADIVIM 기법 구현
• 최성준
Hybrid
Mapping
• 이상선
최성준
성능 통계 수집
• 조겨리
이상선
데모 작성
• 최성준
최성준
이상선
조겨리
Q & A ?