Apa cara terbaik untuk menjelaskan masalah penyimpanan kepada pengembang dan pengguna lain

40

Ketika penyimpanan server mendapat pengembang rendah semua mulai mengeluh, "Saya bisa mendapatkan drive 1 TB di Walmart seharga 100 dolar, apa masalahnya".

Bagaimana kompleksitas penyimpanan dapat dijelaskan kepada pengembang sehingga mereka akan mengerti mengapa drive 1 TB dari Walmart tidak berfungsi.

ps Saya seorang pengembang dan ingin tahu juga :)

John Dyer
sumber
5
Atau "Saya bisa mendapatkan penyimpanan sebesar $ 0,15 per gigabyte dari Amazon S3, apa masalahnya?"
Chris Upchurch
@ Chris Upchurch: Tapi masalahnya adalah Anda mungkin harus menulis laporan tentang apakah akan memilih Amazon S3, Google App Engine atau ... Astaga, itu mungkin melukis. ;)
dance2die
6
Saya mungkin membalikkan itu pada Anda. Pekerjaan saya menghasilkan pendapatan, dan saya perlu sedikit lebih banyak penyimpanan untuk melakukan pekerjaan saya secara efektif. Ini investasi yang solid, jadi mengapa Anda tidak bisa membeli lebih banyak penyimpanan saja?
1
@ Chris: Tentu saja itu selalu tergantung pada situasi yang dihadapi, tetapi saya telah menemukan melalui pengalaman (mahal) bahwa menggunakan Amazon S3 untuk penyimpanan data dasar tidak persis hemat biaya. S3 jauh lebih baik digunakan untuk menangani puncak lalu lintas sehingga Anda tidak perlu berinvestasi dalam sistem yang dapat menangani skenario kasus terburuk yang jarang terjadi - tetapi jika Anda mulai menggunakannya untuk operasi sehari-hari Anda mungkin menemukan bahwa Anda jauh lebih baik membayar biaya modal ...
Mihai Limbăşan

Jawaban:

53

Beberapa kebenaran di rumah tentang penyimpanan, atau mengapa penyimpanan perusahaan sangat mahal?

Hard drive konsumen menawarkan volume ruang yang besar sehingga bahkan pengguna yang paling cerdas dari * batuk * media streaming * batuk * dapat membeli cukup untuk menyimpan koleksi beberapa terabyte. Faktanya, kapasitas disk telah tumbuh lebih cepat daripada jumlah transistor pada silikon selama beberapa dekade sekarang.

Penyimpanan 'Enterprise' adalah masalah yang agak lebih kompleks karena data memiliki persyaratan kinerja dan integritas yang menentukan pendekatan yang agak lebih berat. Data harus memiliki jaminan ketersediaan jika terjadi kegagalan perangkat keras dan mungkin harus dibagikan dengan sejumlah besar pengguna, yang akan menghasilkan lebih banyak permintaan baca / tulis daripada satu pengguna.

Solusi teknis untuk masalah ini bisa menjadi banyak, berkali-kali lebih mahal per gigabyte daripada solusi penyimpanan konsumen. Mereka juga membutuhkan perawatan fisik; cadangan harus diambil dan sering disimpan di luar lokasi sehingga api tidak merusak data. Proses ini menambah biaya berkelanjutan.

Performa

Pada konsumen 1TB Anda atau bahkan drive jarak dekat perusahaan, Anda hanya memiliki satu kepala. Disk berputar pada 7200 RPM, atau 120 putaran per detik. Ini berarti bahwa Anda bisa mendapatkan paling banyak 120 operasi I / O akses acak per detik dalam teori * dan agak kurang dalam praktiknya. Dengan demikian, menyalin file besar pada volume 1TB tunggal relatif lambat.

Pada disk array dengan disk 14x 72GB, Anda memiliki disk 14 head lebih dari (katakanlah) 15.000 RPM atau sekitar 250 putaran per detik. Ini memberi Anda maksimum teoritis 3.500 operasi I / O acak per detik * (sekali lagi, dalam praktiknya sedikit kurang). Semua hal lain yang dianggap sama dengan salinan file akan banyak, banyak kali lebih cepat.

*Anda bisa mendapatkan lebih dari satu akses acak per revolusi disk jika geometri bacaan memungkinkan drive untuk memindahkan kepala dan membaca sektor yang kebetulan tersedia dalam satu putaran disk. Jika akses disk tersebar secara luas, Anda mungkin akan rata-rata kurang dari satu. Di mana array disk diformat dalam tata letak bergaris (lihat di bawah), Anda akan mendapatkan maksimum satu strip membaca per revolusi disk dalam sebagian besar keadaan dan (tergantung pada pengontrol RAID) mungkin kurang dari satu rata-rata.

Drive 7200 RPM 1TB mungkin akan cukup cepat untuk I / O berurutan. Disk array diformat dalam skema bergaris (RAID-0, RAID-5, RAID-10 dll) biasanya dapat membaca paling banyak satu strip per revolusi disk. Dengan strip 64K kita dapat membaca 64Kx250 = 16MB atau lebih data per detik dari disk 15.000 RPM. Ini memberikan throughput sekuensial sekitar 220MB per detik pada larik 14 disk, yang tidak lebih cepat di atas kertas daripada 150MB / detik atau lebih untuk disk SATA 1TB modern.

Untuk streaming video (misalnya), array 4 disk SATA dalam RAID-0 dengan ukuran garis besar (beberapa pengontrol RAID akan mendukung ukuran garis hingga 1MB) memiliki banyak throughput sekuensial. Contoh ini secara teoritis dapat melakukan streaming sekitar 480MB / detik, yang cukup nyaman untuk melakukan pengeditan video HD tanpa kompresi waktu-nyata. Dengan demikian, pemilik Mac Pro dan perangkat keras serupa dapat melakukan tugas-tugas pengomposisian video HD yang membutuhkan mesin dengan susunan serat-sambung langsung beberapa tahun yang lalu.

Manfaat sebenarnya dari array disk adalah pada pekerjaan basis data yang ditandai dengan sejumlah besar kecil, permintaan I / O yang tersebar. Pada jenis ini, kinerja beban kerja dibatasi oleh latensi fisik bit logam dalam cakram berputar-putar dan maju-mundur. Metrik ini dikenal sebagai IOPS (operasi I / O per detik). Semakin banyak disk fisik yang Anda miliki - terlepas dari kapasitasnya - semakin banyak IOPS yang dapat Anda lakukan secara teoritis. Lebih banyak IOPS berarti lebih banyak transaksi per detik.

Integritas data

Selain itu, sebagian besar konfigurasi RAID memberi Anda redundansi data - yang memerlukan lebih dari satu disk fisik menurut definisi. Kombinasi skema penyimpanan dengan redundansi seperti itu dan jumlah drive yang lebih besar memberi sistem kemampuan untuk secara andal melayani beban kerja transaksional yang besar.

Infrastruktur untuk array disk (dan SAN dalam kasus yang lebih ekstrem) bukanlah item pasar massal. Selain itu itu adalah salah satu bit yang benar-benar tidak dapat gagal. Kombinasi standar bangunan dan volume pasar yang lebih kecil ini tidak murah.

Total biaya penyimpanan termasuk cadangan

Dalam praktiknya, biaya terbesar untuk mempertahankan 1TB data kemungkinan adalah pencadangan dan pemulihan. Drive tape dan 34 set SDLT atau kaset ultrium untuk siklus backup dan pemulihan kakek lengkap mungkin akan lebih mahal daripada array disk 1TB. Tambahkan biaya penyimpanan di luar situs dan gaji bahkan satu tape-monyet dan tiba-tiba 1TB data Anda tidak terlalu murah.

Biaya disk seringkali merupakan cara yang adil dalam hierarki biaya penyimpanan yang dominan. Di satu bank saya punya kesempatan untuk bekerja untuk penyimpanan SAN biayanya £ 900 / GB untuk sistem pengembangan dan £ 5.000 / GB untuk disk pada server produksi. Bahkan dengan harga vendor perusahaan, biaya fisik disk hanya sebagian kecil dari itu. Contoh lain yang saya tahu memiliki (relatif) dikonfigurasi IBM Shark SAN yang harganya di suatu tempat lebih dari £ 1 juta. Hanya penyimpanan fisik untuk ini yang dikenakan biaya sekitar £ 9 / gigabyte, atau sekitar £ 9.000 untuk ruang yang setara dengan HDD konsumen 1TB Anda.

ConcernedOfTunbridgeWells
sumber
40

Katakan saja: "Ya, dan saya bisa mendapatkan programmer Java di luar negeri seharga $ 5 / jam."

Portman
sumber
8
Nah, itu bagus!
John Dyer
3
Ini adalah komentar yang cukup jenaka, tetapi saya sepertinya tidak bisa mengangkatnya karena itu tidak benar-benar menjawab pertanyaan, yang saya ingin cari tahu jawabannya.
272
1
@ dance2die Saya pikir itu menjawab pertanyaan dengan cukup jelas.
Joe Phillips
11
Saya pikir ini respons yang valid. Intinya adalah, kita masing-masing memiliki bidang keahlian masing-masing, dan anggota tim perlu saling percaya. Membalikkan pertanyaan kembali ke pengembang seperti ini akan membantu mereka menyadari betapa tidak ada gunanya mencoba menebak satu sama lain.
Portman
2
Tanggapan lain yang valid adalah bahwa orang di Geek Squad mungkin bisa mencari cara untuk melakukannya, melakukannya dengan lebih murah, dan memiliki sikap yang jauh lebih baik tentang melakukannya. Serius, mengapa ini jawaban tertinggi untuk pertanyaan ini? Saya memang tertawa kecil ketika membacanya, tetapi jika ini adalah bagaimana anggota situs menanggapi pertanyaan naif, saya akan tetap menggunakan Google dan Experts Exchange.
dfjacobs
14

Mungkin bertanya kepada mereka beberapa pertanyaan tentang drive Walmart mereka:

  • apa waktu yang berarti untuk gagal?
  • apa yang terjadi jika gagal total?
  • seberapa sering didukung?
  • berapa banyak penyimpanan yang dibutuhkan cadangan 12 bulan?
  • bagaimana bisa dicadangkan di luar situs?
  • bagaimana bisa dikembalikan? (secara keseluruhan? satu file? beberapa direktori?)
  • berapa biaya untuk menyimpan cadangan?
  • bagaimana dia akan menjamin bahwa cadangan disimpan dengan aman? aman?
  • asuransi apa yang dia miliki untuk menutupi hilangnya data vital?

... Bandingkan jawaban ini dengan drive yang berjalan sebagai bagian dari array RAID 5 di pusat data yang dikelola dengan baik.

(Pengungkapan: Saya juga seorang pengembang - Saya hanya menebak!)

AJ.
sumber
1
+1 untuk pendekatan yang baik dan komprehensif untuk "mengapa" pertanyaan.
Avery Payne
4

Mungkin Anda harus mempertimbangkan penyimpanan yang berbeda.

Pengembang Anda mungkin membutuhkan lebih banyak ruang, tetapi mungkin itu bukan drivepace "kelas perusahaan" yang ia kejar. Mungkin dia hanya perlu memiliki tempat penyimpanan .vhd dan ISO yang merupakan kasus kerusakan disk dapat diunduh lagi dari MSDN. Mungkin uji coba membutuhkan persyaratan ruang transien yang besar yang hanya perlu ada di sana selama durasi uji coba. Untuk semua ini, $ 50 Wallmart drive bisa menjadi solusi yang valid.

Peter Stuer
sumber
3

Hal pertama yang perlu disadari orang tentang penyimpanan adalah bahwa ada perbedaan besar antara kapasitas dan IOPS. Hal-hal seperti daya tahan dll biasanya diperdebatkan, hampir selalu turun ke IOPS vs kapasitas.

Mark S. Rasmussen
sumber
4
IOPS: Operasi Input / Output Per Detik
Sam Hasler
2

Tergantung pada jenis server di sana bertanya tentang. Untuk dev dasar atau server pengujian, satu drive tb dari Wallmart mungkin cukup baik. Jika Anda berurusan dengan server kelas atas yang tidak menggunakan komponen rak, tanyakan apakah mereka akan membuat mobil balap dan membeli ban dari toko onderdil mobil untuk menghemat beberapa dolar.

Jared
sumber
1
Saya akan merekomendasikan untuk tidak menggunakan teknik ini pada manajer. Jawabannya mungkin "ya".
Jason Baker
1

Cara saya menjelaskannya adalah ini. Jika bos Anda akan menandatangani pembelian. Saya akan menaruh tanda pada drive wal-mart yang menyatakan ..

"Iklan Sys diperintahkan untuk menempatkan ini di sini di luar kemauan dan ususnya." Dan ketika drive mati maka saya akan menyerahkan drive dan mencatat kepada dev dan bertanya kepada mereka bagaimana melakukan pekerjaan saya saat ini ..

Saya setuju dengan Portman ... percaya pada tim, atau pergi.

Thomas Denton
sumber
0

Jawaban satu baris sederhana: drive 1TB biasanya SATA, tetapi server Anda adalah SCSI. (Bahkan jika server bukan SCSI, ini mungkin menghentikan jalur penyelidikan ... untuk saat ini.)

Drive SCSI 300GB biasanya 4x lipat dari harga, lalu ada cadangan data yang ada, downtime terorganisir, melakukan instalasi, sesuatu mungkin salah, lembur, dll. Semua dalam semua, upgrade penyimpanan sederhana dapat menyebabkan semua jenis rasa sakit - tidak ada yang dev bertanggung jawab langsung. Mengatakan bahwa Anda dapat membeli hard disk yang memenuhi kebutuhan saat ini adalah sangat sederhana.

Tapi Anda tahu Anda harus meletakkan drive yang lebih besar di server sialan ketika Anda membelinya dan Anda menendang diri Anda sekarang! Tetapi Anda ingin server diinstal dan mereka akan menambah biaya dimuka dan mungkin harus pergi persetujuan tambahan ... selamat datang di dunia sakit sysadmin ...

Cawflands
sumber