서버 저장 공간이 부족 해지면 개발자가 모두 신음하기 시작합니다. "월마트에서 1TB 드라이브를 100 달러에 구입할 수 있습니다. 문제는 무엇입니까?"
Walmart의 1TB 드라이브가 작동하지 않는 이유를 이해할 수 있도록 개발자에게 스토리지의 복잡성을 어떻게 설명 할 수 있습니까?
추신 : 나는 개발자이고 알고 싶어 :)
서버 저장 공간이 부족 해지면 개발자가 모두 신음하기 시작합니다. "월마트에서 1TB 드라이브를 100 달러에 구입할 수 있습니다. 문제는 무엇입니까?"
Walmart의 1TB 드라이브가 작동하지 않는 이유를 이해할 수 있도록 개발자에게 스토리지의 복잡성을 어떻게 설명 할 수 있습니까?
추신 : 나는 개발자이고 알고 싶어 :)
답변:
소비자 하드 드라이브는 대용량의 공간을 제공하므로 기침 * 스트리밍 미디어 * 기침 *의 가장 안목있는 사용자조차도 몇 테라 바이트의 모음을 저장하기에 충분히 구입할 수 있습니다. 실제로, 디스크 용량은 현재 수십 년 동안 실리콘의 트랜지스터 수보다 빠르게 증가하고 있습니다.
'엔터프라이즈'스토리지는 데이터에 성능과 무결성 요구 사항이 있기 때문에 다소 복잡한 문제가 발생하기 때문에 다소 복잡한 문제입니다. 데이터는 하드웨어 장애 발생시 가용성을 보장해야하며 많은 수의 사용자와 공유해야 할 수 있으며 이는 단일 사용자보다 더 많은 읽기 / 쓰기 요청을 생성합니다.
이 문제에 대한 기술 솔루션은 소비자 스토리지 솔루션보다 기가 바이트 당 여러 배나 더 비쌉니다. 또한 물리적 유지 보수가 필요합니다. 화재로 인해 데이터가 손상되지 않도록 백업을 수행하고 종종 외부에 저장해야합니다. 이 프로세스는 지속적인 비용을 추가합니다.
공연
1TB 소비자 또는 기업용 니어 라인 드라이브에는 단 하나의 헤드 만 있습니다. 디스크는 7200RPM 또는 초당 120 회전으로 회전합니다. 이는 이론상으로 초당 최대 120 개의 랜덤 액세스 I / O 작업을 얻을 수 있으며 실제로는 다소 적게 수행 할 수 있음을 의미합니다. 따라서 단일 1TB 볼륨에서 큰 파일을 복사하는 것이 상대적으로 느립니다.
14x 72GB 디스크가있는 디스크 어레이에는 15,000RPM 또는 초당 약 250 회 회전하는 디스크에 14 개의 헤드가 있습니다. 이는 초당 최대 3,500 개의 임의 I / O 작업을 이론적으로 제공합니다 (실제로는 다소 적음). 파일 복사와 같은 다른 모든 것들은 여러 배 더 빠를 것입니다.
*
읽기의 구조로 인해 드라이브가 헤드를 이동하고 디스크의 한 회전 내에서 사용 가능한 섹터를 읽을 수있는 경우 디스크 회 전당 하나 이상의 임의 액세스를 얻을 수 있습니다. 디스크 액세스가 널리 분산 된 경우 평균이 1보다 작을 수 있습니다. 스트라이프 (아래 참조) 레이아웃으로 포맷 된 디스크 어레이의 경우 대부분의 상황에서 디스크의 회 전당 최대 하나의 스트라이프 읽기를 얻을 수 있으며 (RAID 컨트롤러에 따라) 평균적으로 1보다 작을 수 있습니다.
7200 RPM 1TB 드라이브는 순차적 I / O에서 상당히 빠를 것입니다. 스트라이프 구성표 (RAID-0, RAID-5, RAID-10 등)로 포맷 된 디스크 어레이는 일반적으로 디스크 회 전당 최대 하나의 스트라이프를 읽을 수 있습니다. 64K 스트라이프를 사용하면 15,000RPM 디스크에서 초당 64Kx250 = 16MB 정도의 데이터를 읽을 수 있습니다. 이것은 14 개의 디스크 어레이에서 초당 약 220MB의 순차 처리량을 제공하며, 이는 150MB / sec보다 종이에서 그리 빠르지 않으므로 최신 1TB SATA 디스크에 대해 인용됩니다.
비디오 스트리밍 (예 :)의 경우, 스트라이프 크기가 큰 RAID-0에 4 개의 SATA 디스크 배열이 있습니다 (일부 RAID 컨트롤러는 최대 1MB의 스트라이프 크기를 지원할 것임). 이 예제는 이론적으로 약 480MB / 초의 스트리밍이 가능하며, 이는 실시간 비 압축 HD 비디오 편집을 수행하기에 충분합니다. 따라서 Mac Pro 및 유사 하드웨어의 소유자는 몇 년 전에 직접 연결 파이버 어레이가있는 시스템이 필요한 HD 비디오 합성 작업을 수행 할 수 있습니다.
디스크 어레이의 실제 이점은 많은 수의 작은 분산 I / O 요청이 특징 인 데이터베이스 작업에 있습니다. 이러한 유형의 워크로드 성능은 디스크에서 빙글 빙글 이동하는 금속 비트의 물리적 대기 시간으로 인해 제한됩니다. 이 메트릭을 IOPS (초당 I / O 작업)라고합니다. 용량에 관계없이 물리적 디스크가 많을수록 이론적으로 더 많은 IOPS가 가능합니다. 더 많은 IOPS는 초당 더 많은 트랜잭션을 의미합니다.
데이터 무결성
또한 대부분의 RAID 구성은 데이터 중복성을 제공합니다. 정의에 따라 둘 이상의 물리적 디스크가 필요합니다. 스토리지 구성표와 이러한 중복성 및 더 많은 수의 드라이브를 결합하면 시스템에 대규모 트랜잭션 워크로드를 안정적으로 제공 할 수 있습니다.
디스크 어레이 (및보다 극단적 인 경우 SAN)의 인프라는 정확히 대량 시장 품목이 아닙니다. 또한 실제로 실패 할 수없는 비트 중 하나입니다 . 구축 표준과 소규모 시장 규모의 이러한 조합은 저렴하지 않습니다.
백업을 포함한 총 스토리지 비용
실제로 1TB의 데이터를 유지하는 데 가장 많은 비용이 백업 및 복구가 될 수 있습니다. 전체 할아버지 백업 및 복구주기를위한 테이프 드라이브와 34 세트의 SDLT 또는 ultrium 테이프는 아마도 1TB 디스크 어레이보다 비쌉니다. 오프 사이트 스토리지 비용과 단일 테이프 원숭이의 월급을 추가하면 갑자기 1TB의 데이터가 그리 저렴하지 않습니다.
디스크 비용은 종종 주요 스토리지 비용의 계층 구조를 낮추는 공정한 방법입니다. 한 은행에서 SAN 스토리지 작업 시간은 개발 시스템의 경우 £ 900 / GB, 프로덕션 서버의 디스크의 경우 £ 5,000 / GB였습니다. 엔터프라이즈 공급 업체 가격에서도 디스크의 물리적 비용은 그 일부에 불과합니다. 내가 아는 또 다른 예는 (상대적으로) 적당히 구성된 IBM Shark SAN을 사용하여 백만 파운드가 넘는 비용이 듭니다. 여기에있는 실제 스토리지는 1GB 소비자 HDD에 해당하는 공간으로 약 £ 9 / 기가 바이트 또는 약 £ 9,000로 청구됩니다.
"그렇습니다. 시간당 $ 5에 Java 프로그래머를 해외로 구할 수 있습니다."
월마트 드라이브에 대해 몇 가지 질문을 해보십시오.
... 잘 관리 된 데이터 센터에서 RAID 5 어레이의 일부로 실행중인 드라이브와 이러한 답변을 비교하십시오.
(공개 : 저는 개발자이기도합니다. 그냥 추측하고 있습니다!)
스토리지에 대해 사람들이 알아야 할 가장 중요한 것은 용량과 IOPS간에 큰 차이가 있다는 것입니다. 내구성과 같은 것들은 대개 무가치하며 거의 항상 IOPS와 용량에 이릅니다.
어떤 종류의 서버를 요구 하느냐에 달려 있습니다. 기본 개발 또는 테스트 서버의 경우 Wallmart의 1TB 드라이브로 충분할 것입니다. 선반 구성 요소를 사용하지 않는 고급 서버를 다루는 경우 경주 용 차량을 만들 것인지 물어보고 자동차 부품 상점에서 타이어를 구입하여 몇 달러를 절약하십시오.
간단한 한 줄 답변 : 1TB 드라이브는 일반적으로 SATA이지만 서버는 SCSI입니다. (서버가 SCSI가 아니더라도 지금은 문의 라인을 중지시킬 수 있습니다.)
300GB SCSI 드라이브는 일반적으로 가격의 4 배이며, 기존 데이터를 백업하고, 가동 중지 시간을 구성하고, 설치를 수행하거나, 문제가 발생하거나, 초과 근무 등을 수행 할 수 있습니다. 전체적으로 간단한 스토리지 업그레이드로 인해 일종의 고통-개발자가 직접 책임을지지 않습니다. 현재의 요구를 충족시키는 상용 드라이브를 구입할 수 있다고 말하는 것은 절망적으로 단순합니다.
그러나 서버를 구입할 때 더 큰 드라이브를 설치해야한다는 사실을 알고 있으며 지금 당장 쫓아 가고 있습니다! 그러나 서버를 설치하고 선결제 비용을 추가했을 경우 추가 승인을 받아야 할 수도 있습니다 ... sysadmin의 고통의 세계에 오신 것을 환영합니다 ...