Saat menggunakan kluster E-MapReduce (EMR) yang dibangun di atas instans dengan disk lokal—seperti instans seri SSD lokal (seri i) dan instans big data (seri d)—Anda mungkin menerima notifikasi bahwa disk lokal mengalami kerusakan. Topik ini menjelaskan cara mengganti disk lokal yang rusak dalam kluster tersebut.
Tindakan pencegahan
Untuk menangani masalah ini, hapus node yang bermasalah dan tambahkan node baru. Pendekatan ini mencegah dampak jangka panjang terhadap operasi bisnis Anda.
Data pada disk asli akan hilang setelah disk diganti. Pastikan data Anda memiliki jumlah replika yang cukup dan telah dicadangkan sebelum melanjutkan proses ini.
Proses penggantian disk mencakup penghentian layanan, pelepasan pemasangan (unmount) disk, pemasangan disk baru, dan restart layanan. Penggantian biasanya selesai dalam waktu lima hari kerja. Sebelum menjalankan langkah-langkah dalam topik ini, evaluasi apakah penggunaan disk oleh layanan dan beban kluster masih dapat mendukung operasi bisnis selama layanan dihentikan.
Prosedur
Login ke Konsol ECS untuk melihat detail event. Detail tersebut mencakup ID instans, status, ID disk yang rusak, progres event, serta operasi terkait.
Langkah 1: Dapatkan informasi tentang disk yang rusak
Login ke node yang berisi disk rusak menggunakan Secure Shell (SSH). Untuk informasi lebih lanjut, lihat Login ke kluster.
Jalankan perintah berikut untuk melihat informasi perangkat blok.
lsblkResponsnya mirip dengan berikut ini.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vdd 254:48 0 5.4T 0 disk /mnt/disk3 vdb 254:16 0 5.4T 0 disk /mnt/disk1 vde 254:64 0 5.4T 0 disk /mnt/disk4 vdc 254:32 0 5.4T 0 disk /mnt/disk2 vda 254:0 0 120G 0 disk └─vda1 254:1 0 120G 0 part /Jalankan perintah berikut untuk melihat informasi disk.
sudo fdisk -lPesan yang dikembalikan mirip dengan berikut ini.
Disk /dev/vdd: 5905.6 GB, 5905580032000 bytes, 11534336000 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytesDari output dua langkah sebelumnya, catat nama perangkat
$device_namedan titik pemasangan$mount_path.Sebagai contoh, jika perangkat dalam event kerusakan disk adalah vdd, maka nama perangkatnya adalah /dev/vdd dan titik pemasangannya adalah /mnt/disk3.
Langkah 2: Mengisolasi disk lokal yang rusak
Hentikan aplikasi yang membaca atau menulis data ke disk yang rusak.
Di Konsol EMR, klik kluster yang berisi disk rusak. Pada tab Cluster Services, temukan layanan EMR yang membaca atau menulis ke disk yang rusak. Layanan tersebut biasanya mencakup layanan penyimpanan seperti HDFS, HBase, dan Kudu. Di Wilayah layanan tempat endpoint layanan tersebut ditempatkan, pilih untuk menghentikan layanan tersebut.
Jalankan perintah berikut untuk menghentikan proses manajemen terkait.
sudo crontab -l | grep -v "exporter_check.sh" | sudo crontab - sudo service taihao_exporter stop sudo service ilogtaild stop sudo service ilogtaildclt stopCatatan: Setelah proses manajemen ini dihentikan, fitur pengumpulan metrik dan pemantauan log untuk node tersebut akan terpengaruh. Fitur-fitur ini akan pulih secara otomatis setelah disk diganti dan proses-proses tersebut dijalankan kembali.
Anda juga dapat menjalankan perintah
sudo fuser -mv $device_namepada node tersebut untuk melihat daftar lengkap proses yang menggunakan disk, lalu hentikan layanan dalam daftar tersebut dari Konsol EMR.Jalankan perintah berikut untuk mengaktifkan pemagaran (fencing) baca-tulis di lapisan aplikasi untuk disk lokal tersebut.
sudo chmod 000 $mount_pathJalankan perintah berikut untuk melepas pemasangan (unmount) disk lokal.
sudo umount $device_name;sudo chmod 000 $mount_pathPentingJika Anda tidak melepas pemasangan disk, nama perangkatnya mungkin berubah setelah disk diperbaiki dan pemagaran dihapus. Hal ini dapat menyebabkan aplikasi membaca atau menulis ke disk yang salah.
Perbarui file fstab.
Backup file /etc/fstab yang ada.
Hapus catatan untuk disk tersebut dari file /etc/fstab.
Sebagai contoh, jika disk yang rusak dalam topik ini adalah dev/vdd, hapus catatan untuk disk tersebut.

Anda dapat menjalankan kembali aplikasi yang dihentikan.
Pada tab Cluster Services kluster yang berisi disk rusak, temukan layanan EMR yang Anda hentikan di Langkah 2. Kemudian, untuk setiap layanan, di Wilayah layanan tempat endpoint ditempatkan, pilih .
Langkah 3: Mengganti disk
Perbaiki disk di Konsol ECS. Untuk informasi lebih lanjut, lihat Isolasi Disk Lokal yang Rusak.
Langkah 4: Pasang disk
Setelah disk diperbaiki, pasang kembali untuk menggunakannya sebagai disk baru.
Jalankan perintah berikut untuk menormalisasi nama perangkat.
device_name=`echo "$device_name" | sed 's/x//1'`Perintah ini menormalisasi nama perangkat. Misalnya, nama perangkat seperti /dev/xvdk diubah menjadi /dev/vdk.
Jalankan perintah berikut untuk membuat direktori pemasangan.
mkdir -p "$mount_path"Jalankan perintah berikut untuk memasang disk.
mount $device_name $mount_path;sudo chmod 755 $mount_pathJika disk gagal dipasang, lakukan langkah-langkah berikut:
Jalankan perintah berikut untuk memformat disk.
fdisk $device_name << EOF n p 1 wq EOFJalankan perintah berikut untuk memasang disk kembali.
mount $device_name $mount_path;sudo chmod 755 $mount_path
Jalankan perintah berikut untuk memodifikasi file fstab.
echo "$device_name $mount_path $fstype defaults,noatime,nofail 0 0" >> /etc/fstabCatatanJalankan perintah
which mkfs.ext4untuk memeriksa apakah ext4 tersedia. Jika tersedia, atur$fstypeke ext4. Jika tidak, atur$fstypeke ext3.Buat file skrip dan pilih kode skrip berdasarkan tipe kluster.
Kluster DataLake, DataFlow, OLAP, DataServing, dan Custom
Kluster Data lake (Hadoop)
Jalankan perintah berikut untuk menjalankan file skrip, membuat folder layanan, lalu menghapus skrip tersebut.
$file_pathadalah path ke file skrip.chmod +x $file_path sudo $file_path -p $mount_path rm $file_pathGunakan disk baru.
Di Konsol EMR, restart layanan yang berjalan di node tersebut.
Jalankan perintah berikut untuk memulai proses manajemen.
sudo service taihao_exporter start sudo service ilogtaild start sudo service ilogtaildclt start (sudo crontab -l; echo "*/5 * * * * bash /usr/local/taihao_exporter/exporter_check.sh") | sudo crontab -Verifikasi bahwa disk berfungsi dengan benar.
> Stop