SSD untuk Server

Tentang SSD di Server. Solid State Disk (SSD) akhir-akhir ini makin menjadi alternatif HDD (hard disk drive) yang menarik. Performa yang sangat tinggi, berbagai masalahnya sudah dibereskan oleh para vendor, harganya makin murah, dukungan dari OS (operating system) makin baik, hemat listrik, bebas getaran (bisa dipasang dalam jumlah sangat banyak), dst. Namun, perkembangannya yang terlalu pesat & perbedaannya yang sangat fundamental (dibanding HDD) seringkali membuat bingung.

Terlampir adalah berbagai pertanyaan seputar SSD, berikut jawabannya. Semoga bermanfaat.

—————
Q: Buat apa pakai SSD ? Kan ada drive HDD tipe SAS kelas Enterprise 15K RPM ? Speednya sampai 300 MB/s lho !

A: HDD dikira cepat karena biasanya diukur dengan metode ?#?Sequential?read/write. Yaitu proses baca/tulis yang berurutan. Dan ini memang bisa cepat sekali jadinya. Di Linux biasanya menggunakan tool bernama dd.

Namun, beban kerja di server jarang sekali yang Sequential. Mayoritas adalah Random / acak.

Nah, untuk beban kerja acak ini, performa HDD sangat rendah, karena sifatnya yang mekanik. Sehingga butuh waktu (seek time) untuk menuju ke lokasi baca/tulis berikutnya. SSD, karena sifatnya yang murni elektronik seperti RAM, sangat cepat disini.

Kecepatan proses operasi baca/tulis dikenal dengan istilah IOPS (Input Output Per Second). HDD paling cepat bisa mencapai sekitar 200 IOPS :https://en.wikipedia.org/wiki/IOPS#Mechanical_hard_drives

Sedangkan SSD kelas konsumen (retail) saja sudah bisa mencapai 20.000 IOPS. 100x lebih kencang, dan harganya malah lebih murah.
Apalagi SSD yang kelas Enterprise, bisa mencapai 1.000.000 IOPS.

Karena itu, pada server dengan beban I/O yang besar, penggunaan SSD perlu untuk mulai dipertimbangkan.

—————
Q: Tapi, katanya kan SSD umurnya pendek? Bisa mati mendadak?

A: Secara ringkas, sebetulnya umur SSD malah bisa lebih panjang daripada HDD yang sifatnya mekanis. Karena firmware SSD terbaru sudah makin cerdas dibanding SSD generasi awal dulu.

Salah satu review soal ini (daya tahan SSD) bisa dibaca disini :http://techreport.com/…/the-ssd-endurance-experiment-they…/2

Dengan beban baca/tulis yang maksimal di endurance test tersebut, drive SSD ada yang bisa bertahan sampai nyaris 2 tahun. Dan jauh melebihi daya tahan yang dinyatakan oleh pembuatnya.

Untuk penggunaan normal / server, bisa jauh lebih lama daripada itu. Apalagi untuk desktop.

—————
Q: Apakah TRIM itu ?

A: Di SSD, jika block yang akan ditulisi sudah ada sebagian terisi, maka perlu dihapus terlebih dahulu, baru kemudian ditulis lagi. Sehingga ini memperlambat proses Write : http://www.maximumpc.com/white-paper-the-trim-command/

Fitur TRIM memungkinkan OS (operating system) untuk memberitahu SSD, block mana saja yang sudah tidak digunakan. Maka, kemudian bisa dihapus oleh SSD.

Sehingga ketika akan ditulis, tidak perlu melakukan proses penghapusan dulu.

Fitur TRIM membantu menjaga agar performa Write di drive SSD terus terjaga baik.

—————
Q: Bagaimana dukungan OS (Linux) terhadap SSD ?

A: Linux mulai bergerak cepat mendukung SSD sejak sekitar 2011. Berikut adalah daftar berbagai dukungan komponennya :

Filesystem ext4, Btrfs, XFS, JFS : mendukung SSD. ext4 dianggap yang paling aman.
Filesystem F2FS : paling baik mendukung SSD. Namun dianggap masih eksperimental, belum cocok untuk production server.

Kernel Linux 3.12 (Nov 2013) : mendukung “queued TRIM”

Software RAID : dm, md, dan lvm sudah mendukung TRIM sejak 2013.

—————
Q: Apakah ada panduan Best Practices untuk SSD di Linux ?

A: Terlampir beberapa yang dapat kami temukan, silakan ditambahkan :

# Perlu dipertimbangkan untuk ?#?tidak? menggunakan opsi “discard” (automatic TRIM) pada filesystem, karena dapat mengganggu stabilitas performa I/O, terutama di saat beban tinggi (peak hours). Sebagai gantinya, jalankan tool “fstrim” di saat off peak.

# Gunakan I/O scheduler Noop atau Deadline. Linux secara default menggunakan I/O scheduler CFQ, yang di optimize untuk HDD. Namun kurang optimal untuk SSD.

echo deadline > /sys/block/sdXXX/queue/scheduler

# Parameter “atime” cukup banyak menyebabkan proses Write ke SSD. Gunakan “relatime”, contoh:

mount -o remount,relatime /
di /etc/fstab : /dev/sda1 / ext4 relatime,errors=remount-ro 0 1

# Atur agar tidak terlalu banyak melakukan swapping : sysctl -w vm.swappiness=10

# File log terlalu sering ditulis, ukurannya bisa besar sekali, dan bisa signifikan memperpendek umur SSD. Pindahkan saja ke HDD.

mkdir /mnt/hdd/log
cp -R /var/log/* /mnt/hdd/log/
mv /var/log /var/log-original
ln -s /mnt/hdd/log /var/log

# Pantau kondisi SDD via SMART : sudo smartctl -data -A /dev/sda

Perhatikan parameter Media_Wearout_Indicator (mungkin berbeda namanya pada produk yang berbeda), awalnya bernilai 100, dan terus berkurang. Jika sudah sekitar 10, pertimbangkan untuk mengganti SSD tersebut.

Reallocated_Sector_Count juga baik diperhatikan, jika mendadak jumlahnya naik drastis, ini adalah pertanda bahwa SSD tersebut mulai perlu diganti.

# Saat ini ada 3 jenis SSD (tipe NAND), yaitu SLC, MLC, dan TLC. Biasanya SLC adalah yang paling reliable, namun harganya juga paling mahal. TLC (Triple Level Cell) biasanya kapasitasnya paling besar, biasanya paling rendah lifetime nya.
Namun, dengan makin baiknya firmware SSD, memang perbedaan antara SLC MLC TLC ini makin menipis.

# Jangan upgrade firmware SSD kecuali jika jelas sangat dibutuhkan :http://www.guru3d.com/…/after-samsung-840-evo-issues-now-th…

—————
Q: Apakah baik jika setup RAID (hardware) dengan menggunakan SSD ?

A: Ada beberapa potensi masalah yang perlu diperhatikan :

(1) Performa : karena performa SSD sangat tinggi, banyak card RAID malah membuat lambat (menjadi bottleneck) : http://www.brentozar.com/…/load-testing-solid-state-drives…/

Satu SSD saja sudah sukses membuat overload card RAID di server Dell R720 di artikel tersebut.
Apalagi jika ada banyak SSD dengan konfigurasi RAID0 atau RAID10.

Jangan sampai investasi SSD Anda menjadi percuma dan server tetap lambat, gara-gara card RAID nya.

(2) TRIM : Waspada, masih ada RAID hardware yang belum mendukung TRIM. Contoh: di server Dell, card RAID nya yaitu PERC Hx00 belum mendukung TRIM. Ganti menjadi PERC Hx30 (H730, H830, dst)

—————
Q: Card RAID di server saya tidak mendukung TRIM frown emoticon dan sulit untuk menggantinya karena kendala budget / pengadaan / dst.

A: Lakukan teknik over-provisioning :https://en.wikipedia.org/wiki/Write_amplification…

Over-provisioning adalah menyisakan sebagian kapasitas SSD / tidak digunakan.
Contoh: pada drive 1 TB, over-provisioning 20% berarti kita hanya menggunakan kapasitas sebesar 800 GB.

Maka, sisa space 20% itu bisa dimanfaatkan oleh SSD untuk bad-block remapping, wear-leveling, dan GC (garbage collection). Semua ini membantu menjaga agar performa SSD tetap optimal.

—————
Q: Bagaimana cara mengukur performa HDD / SSD yang lebih menyerupai beban server yang sebenarnya ?

A: Tool bernama “fio” di Linux bisa menghitung kapasitas IOPS drive Anda.

Untuk mengukur kinerja Random Write di drive Anda, jalankan perintah sbb :

fio –randrepeat=1 –ioengine=libaio –direct=1 –gtod_reduce=1 –name=test –filename=test –bs=4k –iodepth=64 –size=1G –readwrite=randwrite

Lalu perhatikan output “iops”, disitu akan ditampilkan berapa kapasitas IOPS drive Anda yang sebenarnya.

Diambil dari tulisanya pak Harry Sufehmi -> https://www.facebook.com/sufehmi/posts/10153029243776594:0

RAID

RAID merupakan kependekan dari Redundant Array of Inexpensive Disk atau ada juga yang menyebut Redundant Array of Independent Disk. RAID mempunyai kemampuan untuk mengumpulkan beberapa harddisk fisik menjadi satu sebuah harddisk logical yang berukuran besar.
raid adalah

Tujuan dari RAID ini adalah:

  • Fault Tolerance : Contohnya adalah pada sebuah server, apabila server hanya memiliki sebuah harddisk, dan harddisk tersebut rusak, maka server tersebut tidak dapat diakses dan harus diganti dengan harddisk baru. Proses penggantian dan instalasi ulang tentunya membutuhkan waktu yang tidak sebentar. Namun dengan hadirnya teknologi RAID, server tersebut masih tetap berjalan karena kita masih memiliki harddisk cadangan yang berjalan dalam server tersebut.
  • Performance : Dalam raid ada teknik yang dinamakan dengan striping, yakni membagi sebuah blok data menjadi ukuran yang lebih kecil, dengan ukuran yang lebih kecil, waktu penulisan dan pembacaan dalam sebuah harddisk menjadi lebih cepat.
  • Storage Space : Dalam level raid tertentu, kita bisa mengakumulasikan space harddisk.

RAID mempunyai beberapa jenis konfigurasi atau lebih dikenal dengan istilah RAID Level, berikut adalah level-level yang sering digunakan:

  • RAID Level 0 : Stripping, tanpa parity dan mirroring.
  • RAID Level 1 : Mirroring, tanpa parity dan striping.
  • RAID Level 5 : Stripping dengan parity yang terdistribusi.
  • RAID Level 10 (1+0) : Gabungan antara Stripping dan Mirroring.

Membersihkan /tmp di linux secara otomatis

folder atau partisi /tmp berisi file-file temporary seperti session dan cache, apabila kita tidak memiliki cukup space di folder atau partisi /tmp ini, kita dapat membersihkannya secara otomatis menggunakan cronjob dan tmpwatch.

Pertama kita pastikan sudah ada aplikasi tmpwatch, jika belum silahkan install:

yum install tmpwatch -y

jika kita ingin menghapus seluruh file yang ada pada folder /tmp yang berumur lebih dari 24 jam, kita dapat menggunakan perintah seperti ini:

/usr/sbin/tmpwatch --mtime --all 24 /tmp

dan jika kita ingin melakukan perintah tersebut secara otomatis (misalnya setiap jam 4 pagi), kita bisa menggunakan cronjob:

crontab -e

kemudian masukkan baris perintahnya:

0 4 * * * /usr/sbin/tmpwatch --mtime --all 24 /tmp

Install suPHP di ubuntu server

suPHP adalah alat untuk mengeksekusi script PHP dengan izin dari pemiliknya. Ini terdiri dari sebuah modul Apache (mod_suphp) dan akar biner setuid (suPHP) yang disebut dengan modul Apache untuk mengubah uid dari proses menjalankan interpreter PHP. untuk selengkapnya kunjungi www.suphp.org

install setting suphp

Mari kita mulai!

Masuk terminal dan root, install suPHP

apt-get install libapache2-mod-suphp

Setelah proses selesai, disable modul mod_php5

a2dismod php5

lalu setting apache.conf

nano /etc/apache2/apache.conf

lalu masukkan text ini ke baris terakhir

SuPHPsuPHP_Engine on
suPHP_AddHandler application/x-httpd-php .php

Kemudian restart Apache!

aktifkan kembali mod_php5

a2enmod php5

Set File permission untuk directory /var/www, suPHP tidak mengijinkan sebuah file atau direktori menggunakan permission 777, maka kita akan set semua permission file ke 644 dan directory 755 maksimum.

sudo find . -type f -exec chmod 644 {} \;

sudo find . -type f -exec chmod 755 {} \;

suPHP mungkin mempunyai beberapa masalah dengan muncul error 500, untuk itu kita perlu konfigurasi di /etc/suphp/suphp.conf, tambahkan text berikut pada akhir baris:

Handler for CGI-scriptsx-suphp-cgi="execute:!self"x-httpd-suphp="php:/usr/bin/php-cgi"

Selesai!

Pilih Courier atau Dovecot?

Timbul pertanyaan dibenak saya ketika akan memilih aplikasi imap server untuk sebuah email server, pertanyaan tersebut adalah pilih mana antara Courier atau Dovecot? Apa kelebihan dan kelemahan aplikasi tersebut? Setelah browsing mencari refrensi, akhirnya saya menemukan jawabanya, berikut kelebihan dan kelemahan Courier dan Dovecot:

Courier IMAP & POP3

Kelebihan:

  • Merupakan default imap dan pop3 server pada Cpanel lawas
  • Sangat Reliable

Kekurangan:

  • Memakan memori yang cukup besar

Dovecot IMAP & POP3

dovecot_logo

Kelebihan:

  • Memakan memori yang lebih kecil
  • Konfigurasi lebih fleksibel
  • Performance IMAP lebih baik

Kekurangan:

  • Trash MailBox tidak otomatis dihapus

Untuk refrensi perbandingan lebih lanjut bisa anda lihat di http://en.wikipedia.org/wiki/Comparison_of_mail_servers

Remote server melalui ssh tanpa login

Untuk memudahkan kita login remote ke sebuah server melalui ssh, kita bisa menggunakan trik dibawah ini dari komputer linux kita tanpa perlu ribet dengan memasukkan password. Berikut langkah-langkahnya:

Di sisi client/komputer kita

  • Generate publik/private RSA key pair

untuk mencipatakan publik/private RSA key pair, kita dapat menggunakan perintah “ssh-keygen” dari komputer klien / linux kita.

remote ssh tanpa password

 

  • Menyalin public key yang kita buat ke remote server kita.

Untuk menyalin/mencopy public key yang telah kita generate ke server, kita gunakan perintah “ssh-copy-id”, karena port ssh yang saya gunakan bukan port standart 22, maka saya perlu menambahkan parameter “-p portnumber”

ssh-keygen2

Login ke server

Setelah langkah diatas berhasil, maka selanjutnya adalah mencoba login ke server kita tanpa password

ssh-keygen3

 

 

Semoga bermanfaat

 

 

 

Tips Memilih Hosting Indonesia

Bukan promosi hosting nih, tapi lebih ke sebuah curhat saat memilih hosting yang beraneka merk dan harga. Pemilihan lokasi hosting sebaiknya ditentukan dengan target pasar situs kita, misal kita mempunyai situs toko online dengan pasar indonesia, tentunya lebih bijak jika kita memilih hosting yang mempunyai server di indonesia, karena selain lebih cepat (kalo penyedia hostingya beres) tentunya akan menghemat bandwidth internasional negara kita. Kita mengenal beberapa pemain besar di dunia hosting seperti “m*n”, “i*webhost”, “rumahw*b”, tapi tidak menjamin pemain besar memiliki kualitas bagus. Misalnya tingkat uptime server/hosting, belum tentu para pemain besar dengan harga mahal memiliki uptime yang hampir 100%, dan belum tentu hosting yang kurang terkenal buruk. Kita bisa melihat tingkat uptime suatu hosting di http://webhostingstuff.com , masukkan saja nama perusahaan hosting(tentunya hosting bagus sudah terdaftar disitu) atau misal “indonesia”, kita bisa lihat tingkat uptime hosting tersebut, detail downtime berapa lama dan bulan apa. Selain itu tentunya Customer Support sangat penting, cari yang selalu online (dan mau melayani) 24 jam dukungan teknisnya. Kemarin sempet nyoba hosting murah, space besar, dukungan chat online 24 jam tapi tidak pernah membalas/menjawab pertanyaan saya. Hahahaha akhirnya pindah hosting.

uptime beberapa hosting indonesia

Opsi Mount Partisi Linux

Di linux, kita sering mengenal istilah mounting, mounting adalah pengaitan sistem berkas baru yang ditemukan dalam sebuah perangkat penyimpanan seperti harddisk, cd rom, dan flash disk ke dalam sistem direktori utama. tiap sistem berkas yang akan dimount harus dikaitkan kedalam sebuah mount point yaitu sebuah direktori dalam sistem yang sedang kita gunakan. tapi ditulisan ini tak akan membahas mengenai cara mounting, tapi mengenai opsi-opsi mount di dalam file konfigurasi di “/etc/fstab”. berikut daftar opsi mountin partisi linux:

  • auto dan noauto : “auto” adalah opsi mount yang memungkinkan partisi di mount secara otomatis saat boot, sedangakan “noauto” sebaliknya, anda harus me mount secara manual setiap setelah booting.
  • user dan nouser : “user” adalah opsi mount yang memungkinkan semua user biasa untuk me mount partisi, sedangkan “nouser” hanya mengijinkan super user (root) yang boleh melakukan mount partisi tersebut.
  • exec dan noexec : “exec” memungkinkan pengguna untuk menjalankan binary atau file-file executable yang tersimpan pada partisi. sedangkan “noexec” sebaliknya.
  • ro : “ro”(read only) hanya mengijinkan pengguna untuk membaca isi partisi tersebut, tidak dapat melakukan perubahan.
  • rw : “rw”(read write) mounting partisi dengan akses baca tulis saja
  • sync : opsi ini menentukan input dan output ke sistem berkas dilakukan serempak, misal saat me-copy file kedalam flash disk dengan opsi “sync” maka perubahan fisik dilakukan pada saat yang sama.
  • async : berkebalikan dengan sync, saat melakukan copy kedalam flash disk dengan opsi “async” maka perubahan fisik dilakukan setelah perintah copy, dan jika anda melepas media tanpa unmount maka data yang anda copy bisa hilang.
  • default : jika menggunakan opsi default maka yang opsi mount yang akan digunakan adalah ” rw, suid, dev, exec, auto, nouser, and async”

APT-WEB Sudah terpasang di repo sinus

Alhamdulillah akhirnya APT-WEB sudah terpasang di repo.sinus.ac.id (kampus ane gan… STMIK Sinar Nusantara, Local Only 😀 ). Para pengguna Ubuntu atau Debian umumnya menggunakan “apt-get” atau “synaptic” untuk melakukan instalasi software, namun kendala terjadi apabila pemakai tidak punya koneksi ke repositori atau DVD repo. Saat mendownload aplikasi .deb tidak hanya satu aplikasi yang diunduh, tapi juga butuh dependensi lain yang harus ikut di download dan di install, APT-WEB buatan pak fajran solusinya, kita dapat mendownload paket aplikasi beserta dependensinya lalu baru kita install.

apt-web

apt-web

Cara penggunaan APT-WEB:

  • Pada form pertama silakan pilih distro anda
  • form kedua merupakan sumber darimana nantinya aplikasi akan di download, jika anda di kampus sinus maka pilih repo.sinus.ac.id
  • form ketiga, isikan aplikasi yang ingin anda download, misalnya “squid3”
  • klik submit, lalu akan muncul semua file yang diperlukan, download dan simpan kedalam sebuah folder tersendiri, misal /home/faisal/squid3
  • buka terminal, lalu install:

sudo dpkg -i /home/faisal/squid3

Selamat mencoba 😉 , CMIIW.

untuk instalasi apt-web dapat dilihat di http://fajran.web.id/code/kode-dan-dokumentasi-aptweb