Tutorial ini menunjukkan cara mengatur server penyimpanan mandiri di CentOS 5.4. Alih-alih NFS, saya akan menggunakan GlusterFS di sini. Sistem klien akan dapat mengakses penyimpanan seolah-olah itu adalah sistem file lokal. GlusterFS adalah sistem file berkerumun yang mampu menskalakan hingga beberapa peta-byte. Ini menggabungkan berbagai bata penyimpanan melalui Infiniband RDMA atau TCP/IP interkoneksi ke dalam satu sistem file jaringan paralel yang besar. Bata penyimpanan dapat dibuat dari perangkat keras komoditas apa pun seperti server x86_64 dengan RAID SATA-II dan HBA Infiniband.
Saya tidak memberikan jaminan apa pun bahwa ini akan berhasil untuk Anda!
1 Catatan Awal
Dalam tutorial ini saya menggunakan dua sistem, server dan klien:
- server1.example.com:alamat IP 192.168.0.100 (server)
- client1.example.com:Alamat IP 192.168.0.101 (klien)
Kedua sistem harus dapat menyelesaikan nama host sistem lain. Jika ini tidak dapat dilakukan melalui DNS, Anda harus mengedit file /etc/hosts sehingga berisi dua baris berikut di kedua sistem:
vi /etc/hosts
[...]192.168.0.100 server1.example.com server1192.168.0.101 client1.example.com client1[...] |
(Dimungkinkan juga untuk menggunakan alamat IP alih-alih nama host dalam pengaturan berikut. Jika Anda lebih suka menggunakan alamat IP, Anda tidak perlu peduli apakah nama host dapat diselesaikan atau tidak.)
2 Menyiapkan Server GlusterFS
server1.example.com:
GlusterFS tidak tersedia sebagai paket untuk CentOS 5.4, oleh karena itu kita harus membangunnya sendiri. Pertama kita install prasyaratnya:
yum groupinstall 'Alat Pengembangan'
yum groupinstall 'Development Library'
yum install libibverbs-devel fuse-devel
Kemudian kami mengunduh rilis GlusterFS terbaru dari http://www.gluster.org/download.php dan membangunnya sebagai berikut:
cd /tmp
wget http://ftp.gluster.com/pub/gluster/glusterfs/2.0/TERBARU/glusterfs-2.0.9.tar.gz
tar xvfz glusterfs-2.0.9.tar .gz
cd glusterfs-2.0.9
./configure
Di akhir perintah ./configure, Anda akan melihat sesuatu seperti ini:
[...]
Ringkasan konfigurasi GlusterFS
==========================
Klien FUSE :yes
Kata kerja Infiniband : yes
epoll IO multiplex : yes
Berkeley-DB : yes
libglusterfsclient : yes
argp-standalone : no
[[email protected] glusterfs-2.0.9]#
buat &&buat instal
ldconfig
Periksa versi GlusterFS setelahnya (seharusnya 2.0.9):
glusterfs --version
[[email protected] glusterfs-2.0.9]# glusterfs --version
glusterfs 2.0.9 dibuat pada 1 Mar 2010 15:34:50
Revisi repositori:v2.0.9
Hak Cipta ( c) 2006-2009 Gluster Inc.
GlusterFS datang dengan BENAR-BENAR TANPA JAMINAN.
Anda dapat mendistribusikan kembali salinan GlusterFS di bawah persyaratan Lisensi Publik Umum GNU.
[[email protected] glusterfs-2.0.9]#
Selanjutnya kita buat beberapa direktori:
mkdir /data/
mkdir /data/ekspor
mkdir /data/ekspor-ns
mkdir /etc/glusterfs
Sekarang kita membuat file konfigurasi server GlusterFS /etc/glusterfs/glusterfsd.vol yang menentukan direktori mana yang akan diekspor (/data/ekspor) dan klien apa yang diizinkan untuk terhubung (192.168.0.101 =client1.example.com):
vi /etc/glusterfs/glusterfsd.vol
volume posix penyimpanan/direktori opsi posix /data/ekspor-volumevolume kunci jenis fitur/opsi kunci wajib-penguncian pada subvolume kinerja jenis bata posixend-volumevolume /io-threads option thread-count 8 subvolume locksend-volumevolume server type protocol/server option transport-type tcp option auth.addr.brick.allow 192.168.0.101 # Edit dan tambahkan daftar klien yang diizinkan yang dipisahkan koma alamat IP (nama) di sini subvolume brickend-volume |
Harap dicatat bahwa dimungkinkan untuk menggunakan wildcard untuk alamat IP (seperti 192.168.*) dan Anda dapat menentukan beberapa alamat IP yang dipisahkan dengan koma (misalnya 192.168.0.101,192.168.0.102).
Setelah itu kita buat symlink berikut...
ln -s /usr/local/sbin/glusterfsd /sbin/glusterfsd
... dan kemudian sistem startup menautkan untuk server GlusterFS dan memulainya:
chkconfig --levels 35 glusterfsd aktif
/etc/init.d/glusterfsd mulai
3 Menyiapkan Klien GlusterFS
client1.example.com:
GlusterFS tidak tersedia sebagai paket untuk CentOS 5.4, oleh karena itu kita harus membangunnya sendiri. Pertama kita install prasyaratnya:
yum groupinstall 'Alat Pengembangan'
yum groupinstall 'Development Library'
yum install libibverbs-devel fuse-devel
Kemudian kita memuat modul kernel sekering...
sekering modprobe
... dan buat file /etc/rc.modules dengan konten berikut sehingga modul kernel fuse akan dimuat secara otomatis setiap kali sistem boot:
vi /etc/rc.modules
modprobe fuse |
Jadikan file tersebut dapat dieksekusi:
chmod +x /etc/rc.modules
Kemudian kami mengunduh sumber GlusterFS 2.0.9 (harap dicatat bahwa ini adalah versi yang sama yang diinstal pada server!) dan membangun GlusterFS sebagai berikut:
cd /tmp
wget http://ftp.gluster.com/pub/gluster/glusterfs/2.0/TERBARU/glusterfs-2.0.9.tar.gz
tar xvfz glusterfs-2.0.9.tar .gz
cd glusterfs-2.0.9
./configure
Di akhir perintah ./configure, Anda akan melihat sesuatu seperti ini:
[...]
Ringkasan konfigurasi GlusterFS
==========================
Klien FUSE :yes
Kata kerja Infiniband : yes
epoll IO multiplex : yes
Berkeley-DB : yes
libglusterfsclient : yes
argp-standalone : no
buat &&buat instal
ldconfig
Periksa versi GlusterFS setelahnya (seharusnya 2.0.9):
glusterfs --version
[[email protected] glusterfs-2.0.9]# glusterfs --version
glusterfs 2.0.9 dibuat pada 1 Mar 2010 15:58:06
Revisi repositori:v2.0.9
Hak Cipta ( c) 2006-2009 Gluster Inc.
GlusterFS datang dengan BENAR-BENAR TANPA JAMINAN.
Anda dapat mendistribusikan kembali salinan GlusterFS di bawah persyaratan Lisensi Publik Umum GNU.
[[email protected] glusterfs-2.0.9]#
Kemudian kita buat dua direktori berikut:
mkdir /mnt/glusterfs
mkdir /etc/glusterfs
Selanjutnya kita buat file /etc/glusterfs/glusterfs.vol:
vi /etc/glusterfs/glusterfs.vol
volume remote type protocol/client option transport-type tcp option remote-host server1.example.com # dapat berupa IP atau opsi hostname remote-subvolume brickend -volumevolume writebehind type performance/write-behind option ukuran jendela 4MB subvolumes remoteend-volumevolume cache type performance/io-cache option ukuran cache 512MB subvolume writebehindend-volume |
Pastikan Anda menggunakan nama host server atau alamat IP yang benar di baris opsi remote-host!
Itu dia! Sekarang kita dapat memasang sistem file GlusterFS ke /mnt/glusterfs dengan salah satu dari dua perintah berikut:
glusterfs -f /etc/glusterfs/glusterfs.vol /mnt/glusterfs
atau
mount -t glusterfs /etc/glusterfs/glusterfs.vol /mnt/glusterfs
Anda sekarang akan melihat bagian baru di output...
pasang
[[email protected] ~]# mount
/dev/mapper/VolGroup00-LogVol00 on / ketik ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts ketik devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot ketik ext3 (rw)
tmpfs on / dev/shm ketik tmpfs (rw)
none di /proc/sys/fs/binfmt_misc ketik binfmt_misc (rw)
sunrpc di /var/lib/nfs/rpc_pipefs ketik rpc_pipefs (rw)
glusterfs#/etc/glusterfs/glusterfs.vol pada /mnt/glusterfs jenis sekering (rw,allow_other,default_permissions,max_read=131072)
[[email protected] ~]#
... dan...
df -h
[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Dipasang di
/dev/mapper/VolGroup00-LogVol00
> /dev/sda1 99m 13m 82m 14%/boot
TMPFS 187M 0 187M 0%/dev/shm
GLUSTERFS#/etc/glusterfs/glusterfs.vol
28g 2.3g 25g 9%/ mnt/glusterfs
[[email protected] ~]#
Alih-alih memasang bagian GlusterFS secara manual pada klien, Anda dapat memodifikasi /etc/fstab sehingga bagian tersebut dipasang secara otomatis saat klien melakukan booting.
Buka /etc/fstab dan tambahkan baris berikut:
vi /etc/fstab
[...]/etc/glusterfs/glusterfs.vol /mnt/glusterfs glusterfs default 0 0 |
Untuk menguji apakah /etc/fstab Anda yang dimodifikasi berfungsi, reboot klien:
boot ulang
Setelah reboot, Anda akan menemukan share di output...
df -h
... dan...
pasang
4 Tautan
- GlusterFS:http://www.gluster.org/
- CentOS:http://www.centos.org/