Perkhidmatan storan S3 milik Amazon telah mencapai pencapaian yang mengagumkan dengan menyajikan 1 petabyte sesaat menggunakan pemacu cakera keras tradisional ( HDDs ), mencetuskan perbincangan meluas tentang bagaimana prestasi ini dibandingkan dengan alternatif sumber terbuka dan teknologi apa yang memungkinkannya.
Skala Di Sebalik Prestasi S3
AWS S3 beroperasi pada skala yang benar-benar besar, mengendalikan lebih 100 juta permintaan sesaat pada waktu puncak sambil menyimpan lebih daripada 100 juta objek. Perkhidmatan ini mencapai daya pemprosesan 1.1 petabyte sesaat yang luar biasa walaupun bergantung terutamanya pada HDDs , yang secara tradisinya dianggap sebagai peranti storan yang perlahan. Prestasi ini datang daripada kejuruteraan bijak yang mengatasi batasan fizikal cakera berputar melalui paralelisme besar-besaran dan seni bina teragih.
Pandangan utama ialah walaupun HDDs individu adalah perlahan kerana kekangan mekanikal seperti masa carian dan kependaman putaran, menyebarkan data merentasi beribu-ribu pemacu membolehkan sistem melayani banyak permintaan secara serentak. Setiap pemacu mungkin hanya mengendalikan sebahagian kecil daripada mana-mana permintaan tertentu, tetapi bersama-sama mereka mencipta daya pemprosesan agregat yang sangat besar.
Metrik Prestasi AWS S3:
- Daya pemprosesan: 1.1 petabait sesaat
- Permintaan puncak: 100 juta sesaat
- Jumlah objek: 100+ juta disimpan
- Kapasiti operasi: 800,000 jumlah operasi
- Prestasi setiap nod: Puluhan ribu transaksi sesaat
Komuniti Mencari Alternatif Sumber Terbuka
Perbincangan ini telah mendorong ramai dalam komuniti teknologi untuk mencari penyelesaian sumber terbuka yang boleh mencapai prestasi serupa dengan storan berasaskan HDD . Beberapa alternatif telah muncul daripada perbincangan komuniti, walaupun setiap satu datang dengan pertukaran. Ceph dengan RadosGW nampaknya menjadi salah satu pilihan yang paling matang, dengan pengguna melaporkan ia sebenarnya boleh mengatasi prestasi S3 untuk beban kerja tertentu yang melibatkan pemindahan fail besar.
Pilihan lain termasuk Gluster , yang memasarkan dirinya sebagai mampu mengendalikan storan teragih besar menggunakan perkakasan biasa, dan projek yang lebih baharu seperti Garage yang mengambil pendekatan berbeza untuk masalah yang sama. Walau bagaimanapun, kebanyakan penyelesaian ini memerlukan skala yang signifikan merentasi berbilang pelayan untuk mencapai prestasi terbaik mereka, menjadikannya kurang sesuai untuk penggunaan yang lebih kecil.
Nota: RadosGW ialah antara muka pintu masuk yang serasi dengan S3 milik Ceph yang membolehkan aplikasi mengakses storan Ceph menggunakan panggilan API S3 standard.
Alternatif S3 Sumber Terbuka yang Dibincangkan:
- Ceph + RadosGW: Pilihan yang paling matang, boleh mengatasi prestasi S3 untuk fail besar
- Gluster: Dipasarkan untuk perkakasan siap pakai biasa, baik untuk sistem fail berkongsi
- Garage: Projek yang lebih baharu dengan pendekatan reka bentuk yang berbeza (tiada pengekodan pemadaman)
- MinIO: Memerlukan storan kilat untuk prestasi optimum
- SeaweedFS: Telah berkembang dengan sokongan RDMA dan pengekodan pemadaman
Pandangan Seni Bina Teknikal
Ahli komuniti yang mempunyai pengetahuan dalaman telah mendedahkan bahawa seni bina S3 terdiri daripada berbilang lapisan perkhidmatan web berasaskan Java , dengan kebanyakan operasi dikendalikan secara segerak dan bukannya melalui barisan gilir. Sistem ini menggunakan pendekatan yang mudah di mana permintaan mula-mula mencapai pelayan hadapan, kemudian menanyakan perkhidmatan pengindeksan untuk memetakan nama objek kepada lokasi storan, sebelum akhirnya mendapatkan semula data sebenar daripada nod storan.
Ia adalah contoh terbaik tentang berapa banyak transaksi sesaat yang boleh dikendalikan oleh tumpukan perkhidmatan web Java yang agak standard yang pernah saya lihat dalam kerjaya saya.
Seni bina ini boleh mengendalikan puluhan ribu transaksi sesaat bagi setiap nod, menunjukkan bahawa sistem teragih yang direka dengan baik boleh mencapai prestasi yang luar biasa walaupun dengan tumpukan teknologi konvensional.
Seni Bina Teknikal S3:
- Tumpukan utama: Perkhidmatan web berasaskan Java
- Aliran permintaan: Pelayan hadapan → Perkhidmatan pengindeksan → Nod penyimpanan
- Komunikasi: Protokol STUMPY tersuai (mungkin telah berhijrah ke HTTP)
- Perkhidmatan: Kira-kira 12 perkhidmatan utama (data bersejarah)
- Jenis operasi: Terutamanya respons API segerak, pengaturan giliran yang minimum
Realiti untuk Penggunaan yang Lebih Kecil
Walaupun pendekatan S3 berfungsi pada skala besar, perbincangan komuniti mendedahkan cabaran untuk organisasi yang lebih kecil yang cuba meniru prestasi serupa. Banyak sistem storan sumber terbuka dioptimumkan untuk penskalaan mendatar merentasi banyak pelayan dan bukannya memaksimumkan prestasi pada nod tunggal. Ini mewujudkan jurang untuk pengguna yang mahukan prestasi seperti S3 tetapi tidak mempunyai infrastruktur berskala pusat data.
Sesetengah ahli komuniti sedang bereksperimen dengan pendekatan hibrid, menggabungkan ZFS untuk pengurusan storan tempatan dengan sistem seperti Garage untuk keserasian S3 . Penyelesaian ini bertujuan untuk memanfaatkan kekuatan kedua-dua teknologi sambil bekerja dalam kekangan penggunaan perkakasan yang lebih kecil.
Perbincangan ini menyerlahkan pengajaran penting: walaupun prinsip asas kejayaan S3 boleh difahami dan ditiru, mencapai hasil yang serupa memerlukan sama ada skala besar atau penyelesaian kejuruteraan kreatif yang disesuaikan dengan kes penggunaan tertentu.
Rujukan: How AWS S3 serves 1 petabyte per second on top of slow HDDs