{"id":42681,"date":"2023-10-09T16:03:29","date_gmt":"2023-10-09T09:03:29","guid":{"rendered":"https:\/\/www.rumahweb.com\/journal\/?p=42681"},"modified":"2024-01-20T03:02:59","modified_gmt":"2024-01-19T20:02:59","slug":"cara-install-glusterfs-ubuntu","status":"publish","type":"post","link":"https:\/\/www.rumahweb.com\/journal\/cara-install-glusterfs-ubuntu\/","title":{"rendered":"Cara Install GlusterFS di Ubuntu Untuk Shared Storage Server"},"content":{"rendered":"\n<p>Pernahkah Anda berpikir, bagaimana cara membuat online storage seperti Google drive dan bagaimana sistem dibelakangnya bekerja? Glusterfs adalah salah satu sistem yang dapat Anda gunakan untuk membuat shared storage layaknya google drive. Dalam artikel ini, kami akan berbagi cara install Glusterfs di VPS Ubuntu untuk membuat online storage secara mudah.<\/p>\n\n\n\n\n\n<p>Sebelum kita membahas tentang GlusterFS, terlebih dahulu kami akan membahas tentang NFS yang berfungsi membagi data ke seluruh server node untuk memastikan bahwa data terdistribusikan. NFS merupakan sistem yang juga digunakan oleh GlusterFS.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Apa itu Network File System?<\/h2>\n\n\n\n<p>Network File System atau yang disingkat menjadi NFS adalah sebuah protokol yang berfungsi untuk membagikan data melalui jaringan. NFS akan membagikan file maupun resource melalui network atau jaringan, tanpa peduli sistem operasi yang digunakan apa.<\/p>\n\n\n\n<p>NFS bekerja dengan membagi data ke seluruh server-server node yang dimiliki, dan memastikan bahwa semua data yang ada di server satu ada di server lainnya tanpa ada potensi kehilangan data.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pengertian GlusterFS<\/h2>\n\n\n\n<p>GlusterFS adalah salah satu pengembangan dari ekosistem NFS yang memiliki fungsi serupa sebagai shared storage. Namun, GlusterFS memiliki beberapa perbedaan signifikan. Berbeda dengan NFS yang menggunakan protokol berbasis client-server, GlusterFS mengadopsi sistem penggabungan penyimpanan antara server menjadi satu ruang penyimpanan tunggal yang dapat diakses oleh klien.<\/p>\n\n\n\n<p>GlusterFS adalah sebuah sistem file terdistribusi <em>open-source<\/em> yang dirancang untuk mengelola dan menyimpan data secara terdistribusi melalui beberapa server dalam sebuah jaringan. Selain itu, GlusterFS merupakan solusi penyimpanan berkas yang sangat scalable dan dapat disesuaikan dengan kebutuhan Anda.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2023\/10\/glusterfs-architecture.png\"><img loading=\"lazy\" decoding=\"async\" width=\"693\" height=\"462\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2023\/10\/glusterfs-architecture.png\" alt=\"Distributed Glusterfs Volume - install Glusterfs \" class=\"wp-image-42692\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2023\/10\/glusterfs-architecture.png 693w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2023\/10\/glusterfs-architecture-300x200.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2023\/10\/glusterfs-architecture-370x247.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2023\/10\/glusterfs-architecture-270x180.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2023\/10\/glusterfs-architecture-570x380.png 570w\" sizes=\"auto, (max-width: 693px) 100vw, 693px\" \/><\/a><figcaption class=\"wp-element-caption\"><strong>Distributed Glusterfs Volume<\/strong><\/figcaption><\/figure>\n\n\n\n<p>GlusterFS beroperasi dengan menggabungkan kapasitas penyimpanan dari beberapa server fisik atau virtual menjadi satu entitas penyimpanan tunggal yang disebut &#8220;volume.&#8221; <\/p>\n\n\n\n<p>Volume ini dapat diakses oleh klien dari berbagai lokasi dalam jaringan. Salah satu fitur utama dari GlusterFS adalah kemampuannya untuk secara otomatis menyebarkan dan mereplikasi data melalui server-server tersebut, sehingga meningkatkan ketersediaan data dan toleransi terhadap kesalahan.<\/p>\n\n\n\n<p>Dalam artikel ini, kami akan melakukan instalasi GlusterFS pada Linux Ubuntu 20.04. Kami akan menggunakan referensi dengan adanya Server <a href=\"https:\/\/www.rumahweb.com\/journal\/load-balancing-adalah\/\" target=\"_blank\" rel=\"noopener\" title=\"load balancing adalah\">Load Balancer<\/a> untuk situs web, di mana backend load balancer tersebut memerlukan sinkronisasi file antar server. GlusterFS berperan sebagai sistem untuk menyinkronkan data antar backend (sebagai NAS).<\/p>\n\n\n\n<p><strong>BACA JUGA : <a href=\"https:\/\/blog.rumahweb.com\/google-workspace-adalah\/\">Google Workspace: Pengertian, Fitur, Hingga Cara Menggunakan<\/a><\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cara Install GlusterFS pada Ubuntu 20.04<\/h2>\n\n\n\n<p>Paket GlusterFS dapat berjalan dengan baik pada OS Ubuntu 20.04 dan CentOS 7, Dikarenakan sistem sharing data pada gluster tidak menggunakan enkripsi, kami sarankan melakukan instalasi gluster pada jaringan internal VPS atau dapat menggunakan firewall untuk membatasi akses.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1. Persiapan Sistem<\/h3>\n\n\n\n<p>Berikut beberapa persiapan sistem yang diperlukan untuk install GlusterFS pada server.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>2 server linux dengan OS Ubuntu 20.04.<\/li>\n\n\n\n<li>Minimal 2GB Ram, dengan ip public statis<\/li>\n\n\n\n<li>Domain dan Subdomain<\/li>\n\n\n\n<li>Firewall UFW \/ CSF \/ Firewalld<\/li>\n<\/ul>\n\n\n\n<p>Pada demo ini, kaim menggunakan <a href=\"https:\/\/www.rumahweb.com\/vps-murah\/\" target=\"_blank\" rel=\"noopener\" title=\"vps murah\"><strong>VPS KVM<\/strong><\/a> Rumahweb dengan spesifikasi paket M.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2. Konfigurasi DNS\/FileHost<\/h3>\n\n\n\n<p>Langkah pertama untuk install GlusterFs adalah kita perlu melakukan konfigurasi pada dns\/domain dengan statis. Hal ini diperlukan untuk pointing gluster pada masing masing IP server.<\/p>\n\n\n\n<p>Pada artikel kali ini, kita akan membuat subdomain bernama mirror pada ke-2 IP address VPS sebagai berikut :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>subdomain : mirror1.journalrw.my.id<\/li>\n\n\n\n<li>ip address&nbsp; : 203.175.8.223<\/li>\n\n\n\n<li>subdomain : mirror2.journalrw.my.id<\/li>\n\n\n\n<li>ip address&nbsp; : 203.175.8.224<\/li>\n<\/ul>\n\n\n\n<p>Lakukan penyesuaian host pada konfigurasi filehost yaitu file \/etc\/hosts di kedua VPS.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/hosts<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>127.0.0.1 \u00a0 \u00a0 \u00a0 localhost\n203.175.8.223   mirror1.journalrw.my.id gluster1\n203.175.8.224   mirror2.journalrw.my.id gluster2<\/code><\/pre>\n\n\n\n<p>Simpan konfigurasi file dan pastikan saat melakukan ping ke gluster2 dari VPS pertama akan mereply ke ip yang benar yaitu 203.175.8.224.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ping gluster2<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3. Install Package GlusterFS<\/h3>\n\n\n\n<p>Selanjutnya, Kita akan melakukan instalasi dan aktivasi pada paket glusterfs di masing masing server VPS.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo add-apt-repository ppa:gluster\/glusterfs-7\nsudo apt update\nsudo apt install glusterfs-server<\/code><\/pre>\n\n\n\n<p>Aktifkan package gluster yang telah terinstall melalui systemd pada masing&#8221; server.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl start glusterd.service\nsudo systemctl enable glusterd.service\nsudo systemctl status glusterd.service<\/code><\/pre>\n\n\n\n<p>Pastikan gluster dapat aktif dan berjalan pada VPS.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4. Konfigurasi Firewall dan Peer pada Gluster<\/h3>\n\n\n\n<p>Tambahkan ip host VPS 2 ke Ip Vps 1 begitupun sebaliknya, Pastikan hanya allow untuk ip tersebut yang dapat mengakses port default Gluster yaitu 24007, berikut kami contohkan jika menggunakan UFW<\/p>\n\n\n\n<p>Server Mirror 1 :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw allow from 203.175.8.224 to any port 24007<\/code><\/pre>\n\n\n\n<p>Server Mirror 2 :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw allow from 203.175.8.223 to any port 24007<\/code><\/pre>\n\n\n\n<p>Untuk memastikan tidak ada server lain yang bisa mengakses node, kita deny semua incoming\/outgoing selain ip mirror dengan command berikut :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw deny 24007<\/code><\/pre>\n\n\n\n<p>Apabila Firewall telah ditambahkan, lakukan restart pada service ufw<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl restart ufw<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>ufw reload<\/code><\/pre>\n\n\n\n<p>Langkah selanjutnya adalah menambahkan menghubungkan antar node dari Gluster<\/p>\n\n\n\n<p>Server Mirror 1 :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo gluster peer probe gluster2<\/code><\/pre>\n\n\n\n<p>Server Mirror 2 :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo gluster peer probe gluster1<\/code><\/pre>\n\n\n\n<p>Melakukan pengecekan Peering :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo gluster peer status<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Output\nNumber of Peers: 1\nHostname: mirror2.journalrw.my.id\nUuid: b98ae496-c4eb-4b20-9729e-7840230407be\nState: Peer in Cluster (Connected)<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 5. Membuat partisi\/volume yang akan disinkronkan<\/h3>\n\n\n\n<p>Pada panduan ini kita akan membuat volume untuk sinkronisasi file dan data, karena pada artikel ini dilakukan pada case untuk backend load balancer, maka kita akan melakukan sinkronisasi file dari server 1 ke 2 dan 2 ke 1 pada direktori website, yaitu <em>\/var\/www\/html\/website<\/em><\/p>\n\n\n\n<p>Untuk membuat volume pada Gluster, gunakan command berikut ini, sesuaikan dengan path direktori website.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo gluster volume create nama_volume replica jumlah_node namadomain1.com:\/lokasi\/volume\/gluster namadomain2.com:\/lokasi\/volume\/gluster force<\/code><\/pre>\n\n\n\n<p>Penjelasan :&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>nama_volume<\/strong> : nama volume adalah nama yang akan digunakan sebagai status gluster, berikan nama bebas sesuai keinginan.<\/li>\n\n\n\n<li><strong>jumlah_node<\/strong> : isikan sesuai jumlah server gluster kita, jika ada 2, isikan dengan 2.<\/li>\n\n\n\n<li><strong>namadomain.com<\/strong> : digunakan untuk mendeskripsikan host, sebelumnya sudah membuat host bernama mirror1 dan 2.<\/li>\n\n\n\n<li><strong>force <\/strong>: mengabaikan semua pertimbangan atau error, jika di force tidak akan muncul informasi debug<\/li>\n<\/ul>\n\n\n\n<p>Praktek :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo gluster volume create mirror replica 2 mirror1.journalrw.my.id:\/gluster\/volume\/ mirror2.journalrw.my.id:\/gluster\/volume\/ force<\/code><\/pre>\n\n\n\n<p>Output jika berhasil :<br \/>volume create: mirror: success: please start the volume to access data<\/p>\n\n\n\n<p>Lakukan start pada gluster untuk memulai volume.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo gluster volume start mirror<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Output\nvolume start: mirror: success<\/code><\/pre>\n\n\n\n<p>Selanjutnya dapat memeriksa status peer Gluster :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo gluster volume status<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Output\nStatus of volume: volume1\nGluster process                             TCP Port  RDMA Port  Online  Pid\n------------------------------------------------------------------------------\nBrick mirror1.journalrw.my.id:\/gluster\/volume 49152     0          Y       18801\nBrick mirror2.journalrw.my.id:\/gluster\/volume 49152     0          Y       19028\nSelf-heal Daemon on localhost              N\/A      N\/A        Y       19049\nSelf-heal Daemon on mirror1.journalrw.my.id    N\/A      N\/A        Y       18822\n \nTask Status of Volume mirror\n------------------------------------------------------------------------------ There are no active volume tasks\n<\/code><\/pre>\n\n\n\n<p>Berdasarkan informasi diatas, peer telah berhasil dilakukan, langkah selanjutnya kita dapat melakukan allow transfer data pada port 49152 default, dan kita harus allow juga pada port 49153 49154 sebagai 2 volume mirror.<\/p>\n\n\n\n<p>Server Mirror 1 :&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw allow from 203.175.8.224 to any port 49152<\/code><\/pre>\n\n\n\n<p>Server Mirror 2 :&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw allow from 203.175.8.223 to any port 49152<\/code><\/pre>\n\n\n\n<p>Block semua akses selain 2 ip diatas dengan command :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw deny 49152<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 6. Memulai replikasi gluster<\/h3>\n\n\n\n<p>Setelah membuat volume, langkah selanjutnya adalah dengan mounting volume yang telah dibuat sebelumnya dan diarahkan pada lokasi folder website\/data yang akan disinkronkan. Pada contoh artikel kali ini, kami akan melakukan mounting pada <em>\/var\/www\/html\/website<\/em><\/p>\n\n\n\n<p>Server Mirror 1:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mount -t glusterfs mirror1:\/nama_volume \/var\/www\/html\/website<\/code><\/pre>\n\n\n\n<p>Server Mirror 2:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mount -t glusterfs mirror2:\/nama_volume \/var\/www\/html\/website<\/code><\/pre>\n\n\n\n<p><strong>Catatan<\/strong>: nama volume diisi dengan yang sudah dibuat sebelumnya, jika pada panduan ini volume bernama mirror.<\/p>\n\n\n\n<p>Setelah Mounting berhasil dibuat, agar ketika terdapat server down pada salah satu cluster, Maka solusinya adalah menambahkan blok gluster pada fstab, agar ketika server kembali UP, peer akan otomatis tersambung kembali.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/fstab<\/code><\/pre>\n\n\n\n<p>Server Mirror 1 :<br \/>mirror1:\/mirror \/var\/www\/html\/website glusterfs defaults,_netdev 0 0<\/p>\n\n\n\n<p>Server Mirror 2 :<br \/>mirror2:\/mirror \/var\/www\/html\/website glusterfs defaults,_netdev 0 0<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pengujian dan Pengecekan Status Gluster<\/h2>\n\n\n\n<p>Untuk melakukan pemeriksaan status gluster, dapat menggunakan gluster info<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo gluster volume info<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Output\n\nVolume Name: mirror\nType: Replicate\nVolume ID: bac03075-a223-43ab-a0f6-6121115940b0c\nStatus: Started\nSnapshot Count: 0\nNumber of Bricks: 1 x 2 = 2\nTransport-type: tcp\nBricks:\nBrick1: mirror1.journalrw.my.id:\/gluster\/volume\nBrick2: mirror2.journalrw.my.id:\/gluster\/volume\nOptions Reconfigured:\ntransport.address-family: inet\nstorage.fips-mode-rchecksum: on\nnfs.disable: on\nperformance.client-io-threads: off<\/code><\/pre>\n\n\n\n<p>Langkah selanjutnya kita dapat membuat sebuah file pada direktori <em>\/var\/www\/html\/website<\/em> dari server mirror 1 maka akan otomatis ada pada mirror 2 begitupun sebaliknya, apabila ada perubahan pada file dan data akan otomatis replikasi pada tujuan path.<\/p>\n\n\n\n<p>Sampai tahap ini, install GlusterFS pada server telah selesai. <\/p>\n\n\n\n<p>Demikian artikel kami tentang cara install GlusterFS di Ubuntu, yang dapat anda gunakan untuk membuat shared storage atau online storage disisi server. Semoga bermanfaat.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pernahkah Anda berpikir, bagaimana cara membuat online storage seperti Google drive dan bagaimana sistem dibelakangnya bekerja? Glusterfs adalah salah satu sistem yang dapat Anda gunakan untuk membuat shared storage layaknya google drive. Dalam artikel ini, kami akan berbagi cara install Glusterfs di VPS Ubuntu untuk membuat online storage secara mudah. Sebelum kita membahas tentang GlusterFS, [&hellip;]<\/p>\n","protected":false},"author":349,"featured_media":42693,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[177],"tags":[2109,2110,703],"class_list":{"0":"post-42681","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-vps","8":"tag-glusterfs","9":"tag-shared-storage-server","10":"tag-ubuntu"},"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2023\/10\/Cara-Install-GlusterFS-di-Ubuntu-Untuk-Shared-Storage-Server.png","jetpack_shortlink":"https:\/\/wp.me\/p8n3G7-b6p","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/42681","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/users\/349"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/comments?post=42681"}],"version-history":[{"count":0,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/42681\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/media\/42693"}],"wp:attachment":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/media?parent=42681"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/categories?post=42681"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/tags?post=42681"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}