Статьи

Flash Virtualization Platform (FVP)의 기본 요소, 제 2 부. 자신의 플랫폼 또는 파일 시스템 사용

Satyam과 Murali Vilayannur와 논의한 주제 중 하나는 플래시 장치에 데이터를 저장하는 데 사용되는 파일 시스템이었습니다. 다음 주목할 사실을 명심해야합니다. Satyam은 VMFS3을 만들었고 Murali는 VMFS5의 선도적 인 개발자였습니다. 이러한 관점에서 볼 때 VMFS를 사용하는 것이 분명해 보입니다. 그러나 저에게 큰 놀라움은 VMFS를 사용하지 않는 플래시 장치의 경우 파일 시스템을 전혀 사용하지 않는다는 것입니다.

왜 VMFS가 아닌가?
파일 시스템은 필요하지 않은 기능을 제공하며 때로 플래시 장치의 활성 I / O를 처리하는 플랫폼의 요구 사항과도 충돌합니다. 플래시 장치에서 VMFS와 유사한 파일 시스템을 사용할 경우 가장 큰 문제 중 하나는 SAN 저장소 시스템과 해당 데이터 관리 모델에 최적화되어 있다는 것입니다. Satyam은 VMware에서 일하는 동안 ACM에 관한 기사를 썼습니다. 불행히도, 이로 인해 파일 시스템이 FVP 작업을위한 부적절한 도구가됩니다.

직접 주소 파일 시스템은 플래시 장치에 과부하가 걸리며 수명이 단축되고 임의의 I / O 작업을 최적으로 처리하지 못하고 강도가 높은 가비지 수집 알고리즘을 테스트하며 그 개체 (파일 및 디렉터리)는 가상 컴퓨터 수준 및 서비스 품질 관리가 FVP 작업에 매우 중요합니다. 다음 섹션에서는 플래시 장치에서 데이터를 관리하는 문제에 대해 자세히 설명하지만 간단히 결론을 둡니다. 플래시 장치가 비싼 경우에는 직접 주소 지정 파일 시스템을 사용하지 마십시오.

파일 시스템은 또한 FVP의 요구를 훨씬 능가하는 기능을 제공합니다. 예를 들어, 디스크 잠금. VMFS에는 디스크에 대한 다른 ESXi 호스트의 액세스를 제어하는 ​​고급 분산 잠금 관리자가 있습니다. FVP는 호스트의 로컬 디스크를 관리하며 다른 호스트에서 잠금을 요구하지 않으므로 분산 잠금 관리자는 완전히 불필요하게됩니다. POSIX 호환성 및 분산 트랜잭션에 대해서도 마찬가지입니다. 등등.

저수준 플래시 작동
다음은 플래시 드라이브에 기록하는 방법과 하드 드라이브에 기록하는 것과 근본적으로 다른 점입니다. 플래시는 기존 데이터를 덮어 쓸 수 없습니다. 플래시 메모리의 데이터는 빈 페이지에만 쓸 수 있습니다. 플래시 메모리의 특징은 페이지별로 기록 할 수 있으며 블록 단위로만 지우는 것입니다. 페이지 란 무엇이며 블록은 무엇입니까? Flash는 데이터를 셀에 저장합니다. 셀은 페이지 (4KB)로 결합됩니다. 페이지는 블록으로 그룹화됩니다. 대부분의 제조업체는 128 페이지를 하나의 블록으로 결합합니다. 페이지를 지우려면 전체 블록을 지워야합니다. 다른 페이지의 모든 필요한 데이터는 다른 곳에 저장해야합니다. 플래시 디바이스는 제한된 수의 쓰기 및 삭제 사이클을 갖는 것으로 널리 알려져있다.

따라서 임의의 I / O 쓰기는 생각보다 큰 영향을 줄 수 있습니다. 문제는 대부분의 파일 시스템이 80 년대와 90 년대에 개발되었고 그 이후로 발전하지 못했다는 것입니다. 파일 시스템은 하드 드라이브 용으로 설계된 저수준 작업을 사용하여 플래시 장치에서 발생하는 성능 저하를 고려하지 않습니다. 대부분의 플래시 장치 제조업체는 점진적 성능 저하를 설명하기 위해 다양한 메커니즘을 구현합니다. 몇 가지 계획의 도움으로 이러한 메커니즘을 고려하고 왜 조각화가 플래시 장치에 그러한 영향을 미치는지 확인합니다.

마모 관리
참고로, 단순화하기 위해 블록 당 128 페이지가 아닌 한 블록에 9 페이지를 표시하기로 결정했습니다.

마모 관리 프로세스부터 시작하겠습니다. 이 예에서 응용 프로그램은 이미 데이터를 작성하여 블록 1 (1 단계)의 A, B 및 C 페이지에 기록했습니다. 페이지 D, E 및 F에 기록되는 새 데이터가 도착합니다 (2 단계). 응용 프로그램이 이전 데이터 (AC)를 업데이트하고 이전 페이지를 사용하는 대신 플래시 장치가 새 페이지를 계속 사용합니다. 이 새로운 데이터는 A-1, B-1 및 C-1로 표시됩니다. 가능한 한 균등하게 기록을 배포하는 것을 "마모 관리"라고합니다. 이전 페이지는 이제 만료 됨으로 표시됩니다.

가비지 수집 및 다중 입력
이 예에서 A 블록이 가득 차면 사용자가 녹음 할 수있는 공간이 부족하여 새 데이터가 도착하면 어떻게됩니까?

Flash는 현재 데이터를 빈 셀에 복사합니다. 블록의 실제 데이터를 읽고 다른 블록에 씁니다. 기한이 지난 데이터는 해당 페이지에 남아 있으며 나머지 블록 페이지와 함께 지워집니다. 이 프로세스를 "가비지 수집"이라고합니다.

가비지 수집은 괜찮지 만 작동 중에 발생하는 여러 항목으로 인해 플래시 장치에 심각한 손상이 발생합니다. 3 페이지를 기록하기 위해 플래시 장치는 6 페이지를 읽고 새로운 데이터를 기록하기 전에 6 페이지를 다른 장소에 써야합니다. 지우기주기를 잊지 마십시오. 디스크가 꽉 찬 시나리오를 가정 해 봅시다. 새 데이터를 기록하기 전에 데이터를 어디에서 일시적으로 이동합니까? 내 다이어그램에서이 옵션에 블록 B를 추가했습니다. 실제 상황 (파일 시스템 사용시)에서이를 수행하려면 제어기 플래시에 의해 예약 된 초과 공간을 할당해야합니다.

실제 상황 (파일 시스템 사용시)에서이를 수행하려면 제어기 플래시에 의해 예약 된 초과 공간을 할당해야합니다

초과 공간
플래시 용량은 플래시 컨트롤러가 관리하는 프로세스를 위해 예약 될 수 있습니다. 이것은 플래시 장치 제조업체와 사용자가 모두 수행 할 수 있습니다. 예를 들어, 160GB 플래시 PCIe 가속기를 구입하면 사실 192GB 카드를 받게됩니다. 사용자가 160GB를 사용할 수 있으며 가비지 수집, 오류 수정 및 컨트롤러 펌웨어와 같은 플래시 수준 컨트롤러 수준 작업을 위해 32GB가 추가로 예약되어 있습니다. 비 산업용 SSD 드라이브를 구입할 때 일반적으로 약간의 여유 공간이 생깁니다. 이 플래시 장치를 파일 시스템에서 포맷 할 때 이러한 기능을 알고 있어야하며 사용 가능한 용량 밖의 추가 공간을 예약해야합니다. 현재 표준화 된 스케일링 권장 사항이 없기 때문에 자신의 경험을 토대로 선택해야합니다. 최악의 경우, 단편화 된 디스크로 자신을 발견하게되고 SSD는 새로운 디스크를 작성하기 위해 지속적으로 데이터를 전송해야합니다. 아이들이 태그를 연주한다고 상상해보십시오. 움직임의 패턴 만이 조금 더 복잡합니다.

플래시 장치의 데이터 관리 재검토
PernixData 엔지니어는 FVP 용 플래시 장치의 데이터를 관리하기위한 새로운 형식을 개발했습니다. 자세한 내용은 다음 기사에서 공개하고 몇 가지 근본적인 요점을 설명합니다.

플래시 최적화
이 형식은 가능한 최소한의 메타 데이터 집합으로 임시 I / O 데이터를 저장하고 최대 가능한 성능을 가진 플래시 장치로 작업하도록 설계되었습니다. 순차 쓰기 모드에서 높은 플래시 성능을 이용하기 위해 무작위 항목을 연속 항목으로 변환합니다. 이렇게하면 중복 데이터 덮어 쓰기 및 지우기 횟수가 줄어 듭니다. 그리고이 알고리즘은 큰 블록 크기, 디렉토리, 파일, 긴 트랜잭션, 잠금 관리자 등과 같은 파일 시스템의 상속 된 제한 사항을 포함하지 않습니다.

가상 컴퓨터간에 동적으로 공유되는 용량
고마워. 깊은 통합 VMkernel을 사용하면 FVP는 데이터 블록을 추적하고 가상 시스템이 읽기 또는 쓰기 중인지 여부를 결정할 수 있습니다. 이러한 작업을 독립적으로 추적하여 플랫폼은 가상 시스템에 할당 된 공간에서 읽기 및 쓰기 버퍼를 확장 할 수 있습니다. FVP는 캐시에서 임의의 가상 컴퓨터 데이터 집합을 캐시하거나 삭제할 수 있습니다. 대조적으로, 플래시 장치에 대한 기존 파일 시스템의 데이터 대피 정책은 차선책이며 여러 번 다시 쓰게됩니다. 파일 시스템은 파일의 끝에 데이터를 쓰거나 끝에서 블록을 삭제할 수 있습니다.

또한 직접 주소 지정을 사용하는 파일 시스템을 사용하는 경우와 같이 각 가상 시스템에 대한 정적 캐시 공간 구성을 지정할 필요가 없음을 의미합니다. 우리에게는 큰 결정이었습니다. 제품의 사용자 경험은 최대한 직관적이어야합니다.

제품 관리자 인 Bala는 다음과 같이 인용합니다. "제품의 우아함은 기본 작업을 수행하며 사용자가 새롭거나 비정상적인 작업을 수행하지 않아도된다는 것입니다."

일상 업무 측면에서 볼 때 이는 탁월합니다. 각 가상 시스템의 캐시 크기를 미리 조정할 필요가 없습니다. 즉, 미래의 플래시 사용을 알 필요가 없으며 FVP가 모든 것을 처리 할 것입니다. 하드 리소스 할당의 부족은 언로드 된 가상 머신에 의한 플래시의 활용률 부족과 플래시 캐시 크기가 불충분 한 활성 가상 머신에 대한 중복 블록 클리닝 사이클의 출현을 의미합니다. 이를 통해 다중 레코딩 문제를 최소화하고 플래시 장치의 최대 성능과 안정성을 보장합니다.

원본 기사 .

2016 년 이후 FVP는 판매를 중단했습니다.

2011.11.19
Карта