Penyimpanan AERODISK pada prosesor Elbrus 8C domestik


Hai, para pembaca Habr. Kami ingin berbagi berita yang sangat bagus. Kami akhirnya menunggu produksi seri nyata dari generasi baru prosesor Elbrus 8C Rusia. Secara resmi, produksi serial seharusnya sudah dimulai pada tahun 2016, tetapi, pada kenyataannya, produksi massal yang dimulai hanya pada tahun 2019 dan saat ini sekitar 4000 prosesor telah dirilis.


Hampir segera setelah dimulainya produksi massal, prosesor ini muncul di Aerodisk kami, yang ingin kami sampaikan terima kasih kepada perusahaan NORSI-TRANS, yang dengan ramah memberi kami platform perangkat keras Yakhont UVM, yang mendukung prosesor Elbrus 8C, untuk porting perangkat lunak penyimpanan. Ini adalah platform universal dan modern yang memenuhi semua persyaratan MCST. Saat ini, platform ini digunakan oleh konsumen khusus dan operator telekomunikasi untuk memastikan implementasi tindakan yang ditetapkan selama kegiatan pencarian operasional.


Saat ini, porting telah berhasil diselesaikan, dan sekarang penyimpanan AERODISK tersedia dalam versi dengan prosesor Elbrus domestik.


Pada artikel ini, kita akan berbicara tentang prosesor itu sendiri, sejarahnya, arsitekturnya, dan, tentu saja, tentang implementasi penyimpanan kita pada Elbrus.


Ceritanya


Sejarah prosesor Elbrus berasal dari zaman Uni Soviet. Pada tahun 1973, di Institut Mekanika Presisi dan Teknik Komputer. S.A. Lebedev (dinamai Sergey Lebedev yang sama, yang sebelumnya memimpin pengembangan komputer Soviet pertama MESM, dan kemudian BESM) memulai pengembangan sistem komputasi multiprosesor yang disebut "Elbrus". Vsevolod Sergeevich Burtsev memimpin pengembangan, dan Boris Artashesovich Babayan, yang merupakan salah satu wakil kepala desainer, juga mengambil bagian aktif dalam pengembangan.



Vsevolod Sergeevich Burtsev



Boris Artashesovich Babayan


Pelanggan utama proyek ini, tentu saja, Angkatan Bersenjata Uni Soviet, dan seri komputer ini akhirnya berhasil digunakan untuk membuat pusat komando komputer dan sistem penembakan untuk sistem pertahanan rudal, serta sistem tujuan khusus lainnya.


Komputer Elbrus pertama selesai pada tahun 1978. Itu memiliki arsitektur modular dan dapat mencakup dari 1 hingga 10 prosesor berdasarkan sirkuit integrasi menengah. Kecepatan mesin ini mencapai 15 juta operasi per detik. Jumlah RAM, yang umum untuk semua 10 prosesor, hingga 2 hingga 20 kata-kata mesin listrik atau 64 MB.


Belakangan ternyata banyak dari teknologi yang digunakan dalam pengembangan Elbrus pada saat yang sama dipelajari di dunia, dan International Business Machine (IBM) terlibat di dalamnya, tetapi pekerjaan pada proyek-proyek ini, tidak seperti pekerjaan pada Elbrus, tidak pernah telah selesai dan tidak menghasilkan produk jadi.


Menurut Vsevolod Burtsev, insinyur Soviet mencoba menerapkan pengalaman paling maju dari pengembang dalam dan luar negeri. Arsitektur komputer Elbrus juga dipengaruhi oleh komputer Burroughs, perkembangan Hewlett-Packard, serta pengalaman pengembang BESM-6.


Tetapi pada saat yang sama, banyak perkembangan yang asli. Yang paling menarik dalam "Elbrus-1" adalah arsitekturnya.


Superkomputer yang dibuat adalah komputer pertama di USSR yang menggunakan arsitektur superscalar. Penggunaan besar-besaran prosesor superscalar di luar negeri dimulai hanya pada tahun 90-an abad terakhir dengan munculnya prosesor Intel Pentium yang terjangkau di pasar.


Selain itu, untuk mengatur transfer data antara perangkat periferal dan RAM di komputer, prosesor input / output khusus dapat digunakan. Mungkin ada hingga empat prosesor seperti itu dalam sistem, mereka bekerja secara paralel dengan prosesor pusat dan memiliki memori khusus mereka sendiri.


Elbrus-2


Pada tahun 1985, Elbrus mendapatkan kelanjutan logisnya, komputer Elbrus-2 dibuat dan dimasukkan ke dalam produksi serial. Dalam arsitektur, itu tidak jauh berbeda dari pendahulunya, tetapi menggunakan basis elemen baru, yang memungkinkan untuk meningkatkan produktivitas secara keseluruhan hampir 10 kali - dari 15 juta operasi per detik menjadi 125 juta. RAM komputer meningkat menjadi 16 juta kata 72-bit atau 144 MB. Throughput maksimum saluran Elbrus-2 I / O adalah 120 MB / s.


"Elbrus-2" secara aktif digunakan di pusat-pusat penelitian nuklir di Chelyabinsk-70 dan di Arzamas-16 di MCC, dalam sistem pertahanan rudal A-135, dan juga di fasilitas militer lainnya.



Kompleks SPRUT C1200 berdasarkan prosesor Elbrus


Penciptaan Elbrus dihargai oleh para pemimpin Uni Soviet. Banyak insinyur dianugerahi pesanan dan medali. Perancang Umum Vsevolod Burtsev dan sejumlah spesialis lainnya menerima hadiah negara. Dan Boris Babayan dianugerahi Orde Revolusi Oktober.


Penghargaan ini lebih dari layak, Boris Babayan kemudian berkata:


"Pada tahun 1978, kami membuat mesin superscalar pertama, Elbrus-1. Sekarang di Barat mereka membuat superscalar hanya dari arsitektur ini. Superscalar pertama muncul di tahun ke-92, milik kami di tahun ke-78. Selain itu, versi dari superscalar yang kami buat , mirip dengan Pentium Pro, yang dibuat Intel pada tahun ke-95. "

Kata-kata tentang keutamaan historis ini juga dikonfirmasikan di AS, Keith Diefendorff, pengembang Motorola 88110, salah satu pemroses superscalar Barat pertama, menulis:


"Pada 1978, hampir 15 tahun sebelum prosesor superscalar Barat pertama kali muncul, sebuah prosesor digunakan di Elbrus-1, dengan penerbitan dua instruksi per siklus, mengubah urutan pelaksanaan instruksi, mengubah nama register dan mengeksekusi dengan asumsi."

Elbrus-3


Itu tahun 1986, dan hampir segera setelah menyelesaikan pekerjaan pada Elbrus kedua, ITM & VT mulai mengembangkan sistem Elbrus-3 baru menggunakan arsitektur prosesor baru yang fundamental. Boris Babayan menyebut pendekatan ini "pasca-superscalar." Arsitektur inilah, yang kemudian disebut VLIW / EPIC, yang mulai digunakan prosesor Itanium di masa depan (di pertengahan 90-an) (dan di Uni Soviet, perkembangan ini dimulai pada 1986 dan berakhir pada 1991).


Ide untuk secara eksplisit mengelola paralelisme operasi menggunakan kompiler pertama kali diwujudkan dalam kompleks komputasi ini.


Pada tahun 1991, yang pertama dan, sayangnya, satu-satunya komputer Elbrus-3 yang dirilis, yang tidak dapat mereka atur sepenuhnya, dan setelah runtuhnya Uni Soviet, tidak ada yang membutuhkannya, dan desain serta rencana tetap di atas kertas.


Latar belakang arsitektur baru


Tim yang bekerja di ITMiVT untuk menciptakan superkomputer Soviet tidak putus, tetapi terus bekerja sebagai perusahaan terpisah dengan nama MCST (Moscow SPARK-Technology Center). Dan pada awal 90-an, ICST memulai kerja sama aktif dengan Sun Microsystems, di mana tim ICST mengambil bagian dalam pengembangan mikroprosesor UltraSPARC.


Selama periode inilah proyek arsitektur E2K muncul, yang awalnya didanai oleh Sun. Kemudian, proyek menjadi sepenuhnya independen dan semua kekayaan intelektual di dalamnya tetap dengan staf ICST.


"Jika kita terus bekerja dengan Sun di daerah ini, maka semuanya akan menjadi milik Sun. Meskipun 90% dari pekerjaan dilakukan sebelum Sun muncul." (Boris Babayan)

Arsitektur E2K


Ketika kami membahas arsitektur prosesor Elbrus, sangat sering dari kolega kami di industri TI kami mendengar pernyataan berikut:


“Elbrus adalah arsitektur RISC”
“Elbrus adalah arsitektur EPIC”
“Elbrus adalah arsitektur SPARC”

Faktanya, tidak satu pun dari pernyataan ini yang sepenuhnya benar, dan jika benar, hanya sebagian saja.


Arsitektur E2K adalah arsitektur prosesor asli yang terpisah, fitur utama E2K adalah efisiensi energi dan skalabilitas luar biasa yang dicapai dengan menetapkan paralelisme operasi yang eksplisit. Arsitektur E2K dikembangkan oleh tim ICSTC dan didasarkan pada arsitektur post-superscalar (a la EPIC) dengan beberapa pengaruh arsitektur SPARC (dengan masa lalu RISC). Pada saat yang sama, dalam penciptaan tiga dari empat arsitektur dasar (Superscalars, postsuperscalars, dan SPARC), MCST terlibat langsung. Dunia ini sangat kecil.


Untuk menghindari kebingungan lebih lanjut, kami menggambar diagram sederhana, yang, meskipun sederhana, tetapi sangat jelas menunjukkan akar arsitektur E2K.



Sekarang sedikit lebih banyak tentang nama arsitektur, sehubungan dengan yang ada juga kesalahpahaman.


Dalam sumber yang berbeda Anda dapat menemukan nama-nama berikut arsitektur ini: "E2K", "Elbrus", "Elbrus 2000", ELBRUS ("Penjadwalan Pemanfaatan Sumber Daya Dasar ExpLicit", yaitu perencanaan eksplisit untuk penggunaan sumber daya dasar). Semua nama ini mengatakan hal yang sama - tentang arsitektur, tetapi dalam dokumentasi teknis resmi, serta di forum teknis, nama E2K digunakan untuk menunjuk arsitektur, jadi di masa depan jika kita berbicara tentang arsitektur prosesor, kita menggunakan istilah "E2K", dan jika tentang prosesor tertentu, kami menggunakan nama "Elbrus".


Fitur Teknis Arsitektur E2K


Dalam arsitektur tradisional seperti RISC atau CISC (x86, PowerPC, SPARC, MIPS, ARM), prosesor menerima aliran instruksi yang dirancang untuk eksekusi berurutan. Prosesor dapat mendeteksi operasi independen dan menjalankannya secara paralel (superskalaritas) dan bahkan mengubah urutannya (eksekusi luar biasa). Namun, analisis dependensi dinamis dan dukungan untuk pelaksanaan luar biasa memiliki keterbatasan dalam jumlah peluncuran dan analisis perintah per siklus. Selain itu, blok yang sesuai di dalam prosesor mengkonsumsi sejumlah besar energi, dan implementasinya yang paling rumit kadang-kadang menyebabkan masalah stabilitas atau keamanan.


Dalam arsitektur E2K, kompiler mengambil sebagian besar pekerjaan pada analisis ketergantungan dan mengoptimalkan urutan operasi. Prosesor menerima input yang disebut. perintah lebar, di mana masing-masing instruksi untuk semua perangkat eksekutif prosesor yang harus dijalankan pada jam ini disandikan. Prosesor tidak perlu menganalisis dependensi antara operan atau mengatur ulang operasi antara perintah lebar: semua ini dilakukan oleh kompiler berdasarkan analisis kode sumber dan perencanaan sumber daya prosesor. Sebagai hasilnya, komponen perangkat keras prosesor dapat lebih sederhana dan lebih ekonomis.


Kompiler dapat menganalisis kode sumber lebih teliti daripada perangkat keras prosesor RISC / CISC dan menemukan operasi yang lebih independen. Oleh karena itu, ada lebih banyak aktuator bersamaan dalam arsitektur E2K daripada di arsitektur tradisional.


Fitur terkini dari arsitektur E2K:


  • 6 saluran perangkat logika aritmatika (ALU) bekerja secara paralel.
  • File daftar 256 register 84-bit.
  • Dukungan perangkat keras untuk loop, termasuk pipelining. Meningkatkan pemanfaatan CPU.
  • Perangkat pra-paging data asinkron yang dapat diprogram dengan saluran bacaan terpisah. Memungkinkan Anda untuk menyembunyikan penundaan dari mengakses memori dan memanfaatkan ALU sepenuhnya.
  • Dukungan untuk komputasi spekulatif dan predikat bit tunggal. Hal ini memungkinkan untuk mengurangi jumlah transisi dan sekaligus menjalankan beberapa cabang program.
  • Tim yang luas yang mampu mengatur hingga 23 operasi dalam satu siklus dengan pengisian maksimum (lebih dari 33 operasi saat pengemasan operan menjadi instruksi vektor).


Emulasi X86


Bahkan pada tahap desain arsitektur, pengembang memiliki pemahaman tentang pentingnya perangkat lunak pendukung yang ditulis untuk arsitektur Intel x86. Untuk ini, sistem dinamis (yaitu, dalam proses eksekusi program, atau "on the fly") terjemahan kode x86 biner ke dalam kode prosesor arsitektur E2K diimplementasikan. Sistem ini dapat bekerja baik dalam mode aplikasi (dengan cara WINE) dan dalam mode yang mirip dengan hypervisor (maka dimungkinkan untuk menjalankan seluruh OS tamu untuk arsitektur x86).


Berkat beberapa level optimisasi, dimungkinkan untuk mencapai kecepatan tinggi dari kode yang diterjemahkan. Kualitas emulasi arsitektur x86 dikonfirmasi oleh peluncuran sukses lebih dari 20 sistem operasi (termasuk beberapa versi Windows) dan ratusan aplikasi pada kompleks komputasi Elbrus.


Mode Eksekusi Program yang Dilindungi


Salah satu ide paling menarik yang diwarisi dari arsitektur Elbrus-1 dan Elbrus-2 adalah apa yang disebut eksekusi program yang aman. Esensinya adalah untuk menjamin operasi program hanya dengan data yang diinisialisasi, periksa semua akses memori untuk memiliki rentang alamat yang valid, memberikan perlindungan antar-modul (misalnya, melindungi program panggilan dari kesalahan di perpustakaan). Semua pemeriksaan ini dilakukan dalam perangkat keras. Untuk mode terlindungi, ada pustaka lengkap dan pustaka dukungan runtime. Harus dipahami bahwa pembatasan yang diberlakukan membuatnya tidak mungkin untuk mengatur eksekusi, misalnya, kode yang ditulis dalam C ++.


Bahkan dalam mode operasi “tak terlindungi” yang biasa dari prosesor Elbrus, ada fitur yang meningkatkan keandalan sistem. Jadi, tumpukan informasi yang mengikat (rantai alamat pengirim untuk panggilan prosedural) dipisahkan dari tumpukan data pengguna dan tidak tersedia untuk serangan seperti itu yang digunakan dalam virus seperti menipu alamat pengirim.


Perkembangan ini tidak hanya memungkinkan kami untuk mengejar ketinggalan dan di masa depan melampaui arsitektur yang bersaing dalam hal kinerja dan skalabilitas, tetapi juga memberikan perlindungan terhadap kesalahan yang mempengaruhi x86 / amd64. Bookmark seperti Meltdown (CVE-2017-5754), Specter (CVE-2017-5753, CVE-2017-5715), RIDL (CVE-2018-12126, CVE-2018-12130), Fallout (CVE-2018-12127), ZombieLoad (CVE-2019-11091) dan sejenisnya.


Perlindungan modern terhadap kerentanan yang ditemukan dalam arsitektur x86 / amd64 didasarkan pada tambalan di tingkat sistem operasi. Itulah sebabnya penurunan kinerja prosesor generasi sekarang dan sebelumnya dari arsitektur ini sangat mencolok dan berkisar antara 30% hingga 80%. Kami, sebagai pengguna aktif dari prosesor x86, mengetahui hal ini, menderita dan terus “memakan kaktus,” tetapi solusi untuk masalah ini ada di tangan kami (dan, sebagai hasilnya, untuk pelanggan kami), manfaat yang tidak diragukan, terutama jika solusinya adalah Rusia.


Spesifikasi teknis


Berikut adalah spesifikasi teknis resmi prosesor Elbrus di masa lalu (4C), saat ini (8C), baru (8CB) dan generasi mendatang (16C) dibandingkan dengan prosesor Intel x86 serupa.



Bahkan pandangan sekilas pada tabel ini menunjukkan (dan ini sangat menyenangkan) bahwa simpanan teknologi prosesor dalam negeri, yang tampaknya tidak dapat diatasi 10 tahun yang lalu, sekarang tampak sangat kecil, dan pada 2021 dengan peluncuran Elbrus-16C (yang, antara lain, akan mendukung virtualisasi) akan dikurangi ke jarak minimum.


Penyimpanan AERODISK pada prosesor Elbrus 8C


Kami beralih dari teori ke praktik. Sebagai bagian dari aliansi strategis perusahaan MTsST, Aerodisk, Basalt SPO (sebelumnya Alt Linux) dan NORSI-TRANS, sistem penyimpanan data dikembangkan dan dipersiapkan untuk operasi, yang saat ini bukan yang terbaik dalam hal keamanan, fungsionalitas, biaya dan kinerja, kemudian , menurut pendapat kami, solusi yang layak disangkal yang dapat memberikan tingkat kemandirian teknologi dari negara kami dengan Anda.
Sekarang detailnya ...


Perangkat keras


Perangkat keras penyimpanan diimplementasikan berdasarkan platform universal Yakhont UVM dari NORSI-TRANS. Platform Yakhont UVM menerima status peralatan telekomunikasi asal Rusia dan termasuk dalam daftar terpadu produk radio-elektronik Rusia. Sistem ini terdiri dari dua pengontrol penyimpanan terpisah (masing-masing 2U), yang saling terhubung oleh interkoneksi Ethernet 1G atau 10G, serta dengan rak-rak disk yang umum menggunakan koneksi SAS.


Tentu saja, ini tidak seindah format “Cluster in a box” (ketika pengontrol dan drive dengan backplane umum dipasang pada sasis 2U yang sama), yang biasanya kita gunakan, tetapi dalam waktu dekat ini juga akan tersedia. Hal utama di sini adalah bekerja dengan baik, tetapi kita akan memikirkan "busur" nanti.




Di bawah kap, setiap pengontrol memiliki motherboard prosesor tunggal dengan empat slot RAM (DDR3 untuk prosesor 8C). Setiap pengontrol juga memiliki 4 port Ethernet 1G (dua di antaranya digunakan oleh AERODISK ENGINE sebagai layanan) dan tiga konektor PCIe untuk adaptor Back-end (SAS) dan Front-end (Ethernet atau FibreChannel).


Sebagai disk boot, kami menggunakan disk SATA SATA Rusia dari GS Nanotech, yang telah berulang kali diuji dan digunakan dalam proyek.



Ketika kami pertama kali bertemu platform, kami memeriksanya dengan cermat. Kami tidak memiliki pertanyaan mengenai kualitas perakitan dan penyolderan, semuanya dilakukan dengan rapi dan andal.


Sistem operasi


Sebagai OS, versi Alt 8SP OS digunakan untuk sertifikasi. Dalam waktu dekat, kami berencana untuk membuat repositori plug-in dan yang terus diperbarui untuk Alt OS dengan perangkat lunak penyimpanan Aerodisk.


Versi distribusi ini dibangun di atas versi stabil saat ini dari kernel Linux 4.9 untuk E2K (cabang dengan dukungan jangka panjang diangkut oleh spesialis MCST), ditambah dengan tambalan untuk fungsi dan keamanan. Semua paket di Alt OS dikumpulkan langsung di Elbrus menggunakan sistem perakitan transaksional asli dari proyek Tim Linux ALT, yang memungkinkan pengurangan biaya tenaga kerja untuk pelabuhan itu sendiri dan lebih memperhatikan kualitas produk.


Setiap rilis Alt OS untuk Elbrus dapat diperluas secara signifikan dalam hal fungsionalitas, menggunakan repositori yang tersedia untuknya (dari sekitar 6 ribu paket sumber untuk versi kedelapan hingga sekitar 12 untuk kesembilan).


Pilihan itu juga dibuat karena perusahaan Basalt SPO, pengembang Alt OS, secara aktif bekerja dengan pengembang perangkat lunak dan perangkat lain di berbagai platform, memberikan interaksi tanpa batas dalam kerangka sistem perangkat keras dan perangkat lunak.


Perangkat Lunak Penyimpanan


Ketika porting, kami segera meninggalkan ide untuk menggunakan emulasi x86 yang didukung di E2K, dan mulai bekerja dengan prosesor secara langsung (karena Alt sudah memiliki alat yang diperlukan untuk ini).


Antara lain, mode eksekusi asli memberikan keamanan yang lebih baik (tiga tumpukan perangkat keras yang sama dan bukan satu) dan peningkatan kinerja (tidak perlu mengalokasikan satu atau dua kernel dari delapan agar penerjemah biner bekerja, dan kompiler melakukan tugasnya lebih baik daripada JIT).


Bahkan, dalam implementasi AERODISK ENGINE pada E2K, sebagian besar fungsi penyimpanan yang ada, yaitu di x86, didukung. Sebagai perangkat lunak sistem penyimpanan, versi AERODISK ENGINE saat ini digunakan (A-CORE versi 2.30)


Tanpa masalah, fungsi-fungsi berikut diluncurkan pada E2K dan diuji untuk digunakan dalam produk:


  • Toleransi kesalahan hingga dua pengendali dan I / O multi-jalur (mpio)
  • Memblokir dan mengakses file dengan volume tipis (RDG, kumpulan DDP; FC, iSCSI, NFS, protokol SMB termasuk integrasi dengan Active Directory)
  • Level RAID yang berbeda hingga tiga paritas (termasuk kemampuan untuk menggunakan konstruktor RAID)
  • Penyimpanan hibrid (menggabungkan SSD dan HDD dalam kelompok yang sama, mis. Cache dan robek)
  • Opsi hemat tempat dengan deduplikasi dan kompresi
  • Snapshot ROW, Klon, dan Opsi Replikasi Berbeda
  • Dan fitur kecil namun bermanfaat lainnya seperti QoS, hotspare global, VLAN, BOND, dll.

E2K , ( ) -, all-flash 20-30%.


, , , .



, , .


, (2xCPU E8C 1.3 Ghz, 32 GB RAM + 4 SAS SSD 800GB 3DWD), RAM-, DDP RAID-10 LUN 500G LUN- iSCSI (10G Ethernet) Linux-. FIO.


.



60%, .. , .


, highload - , , , 80% , .


.



, 8 – 2019 4000 . , 4 5000, .


, , , .
2020 8, . , 2020 -8 .


— .


, ( -16). , .


, , , , . , , .


, , , - , – , , . , , .



. , , , !


, , , , , . .


- , 100% – ))).



, :
https://www.ixbt.com/cpu/e2k-spec.html


«»:
https://topwar.ru/34409-istoriya-kompyuterov-elbrus.html


e2k:
https://ru.wikipedia.org/wiki/%D0%AD%D0%BB%D1%8C%D0%B1%D1%80%D1%83%D1%81_2000


4- (-8) 5- (-8, 2020 ):
https://ru.wikipedia.org/wiki/%D0%AD%D0%BB%D1%8C%D0%B1%D1%80%D1%83%D1%81-8%D0%A1


6- (-16, 2021 ):
https://ru.wikipedia.org/wiki/%D0%AD%D0%BB%D1%8C%D0%B1%D1%80%D1%83%D1%81-16%D0%A1


:
http://www.elbrus.ru/elbrus_arch


- «» :
http://www.mcst.ru/files/5a9eb2/a10cd8/501810/000003/kim_a._k._perekatov_v._i._feldman_v._m._na_puti_k_rossiyskoy_ekzasisteme_plany_razrabotchikov.pdf


«» , :
http://www.mcst.ru/files/5472ef/770cd8/50ea05/000001/rossiyskietehnologiielbrus-it-edu9-201410l.pdf


, :
http://www.mcst.ru/e2k_arch.shtml


:
https://www.osp.ru/os/1999/05-06/179819


, :
https://yadi.sk/i/HDj7d31jTDlDgA


:
https://altlinux.org/


https://sdelanounas.ru/blog/shigorin/

Source: https://habr.com/ru/post/id482434/


All Articles