Hướng dẫn thiết lập hệ thống lưu trữ độc lập tương tự NFS

QuanTriMang.com - Trong bài viết sau, Quản Trị Mạng sẽ giới thiệu với các bạn cách thiết lập hệ thống lưu trữ dữ liệu độc lập trên nền tảng Ubuntu 10.04. Thay vì sử dụng NFS, chúng ta sẽ dùng GlusterFS, hệ thống client được cung cấp khả năng truy cập đến các thiết bị lưu trữ. GlusterFS là tập hợp file hệ thống có thể được nhân rộng tới vài peta-byte. Chương trình có thể lưu trữ dữ liệu trên những các mô hình, thiết bị khác nhau qua giao thức Infiniband RDMA hoặc TCP/IP được kết nối vào 1 hệ thống lớn song song với các tập tin mạng. Những thiết bị lưu trữ này phải tương thích tốt với hệ điều hành server x86_64 như SATA-II RAID và Infiniband HBA.

Lưu ý sơ bộ

Trong bài thử nghiệm này, chúng ta sử dụng 2 hệ thống server và client:
 - server: server1.example.com và địa chỉ IP: 192.168.0.100
 - client: client1.example.com và địa chỉ IP 192.168.0.101

Tất cả các lệnh đều được thực hiện bằng tài khoản gốc, do đó hãy đăng nhập vào root:

sudo su

Cả 2 mô hình này đều có thể áp dụng trên các hostname của hệ thống khác. Nếu không thực hiện được qua DNS, hãy sửa lại file /etc/hosts như sau:

vi /etc/hosts

127.0.0.1 localhost.localdomain localhost
192.168.0.100 server1.example.com server1
192.168.0.101 client1.example.com client1

# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Các bạn nên sử dụng địa chỉ IP thay vì hostname, vì sẽ tiện lợi hơn rất nhiều trong những bước thực hiện tiếp theo.

Cài đặt và thiết lập hệ thống Server GlusterFS


Quá trình này sẽ được áp dụng trên server1.example.com. Các gói cài đặt GlusterFS đã có sẵn trong Ubuntu 10.04, do đó hãy sử dụng lệnh sau:

aptitude install glusterfs-server

Cú pháp:

glusterfs --version

sẽ hiển thị phiên bản của GlusterFS vừa cài đặt (ở đây là 3.0.2):

root@server1:~# glusterfs --version
glusterfs 3.0.2 built on Mar 23 2010 00:24:16
Repository revision: v3.0.2
Copyright (c) 2006-2009 Gluster Inc. <http://www.gluster.com>
GlusterFS comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of GlusterFS under the terms of the GNU General Public License.
root@server1:~#

Tiếp theo, chúng ta tạo thêm các thư mục sau:

mkdir /data/
mkdir /data/export
mkdir /data/export-ns

Sau đó, tạo file thiết lập /etc/glusterfs/glusterfsd.vol (nhưng trước đó chúng ta nên sao lưu file gốc /etc/glusterfs/glusterfsd.vol) – có chức năng chỉ định thư mục nào sẽ được khởi tạo (/data/export) và client nào được cho phép kết nối (192.168.0.101 = client1.example.com):

cp /etc/glusterfs/glusterfsd.vol /etc/glusterfs/glusterfsd.vol_orig
cat /dev/null > /etc/glusterfs/glusterfsd.vol
vi /etc/glusterfs/glusterfsd.vol

volume posix
type storage/posix
option directory /data/export
end-volume

volume locks
type features/locks
option mandatory-locks on
subvolumes posix
end-volume

volume brick
type performance/io-threads
option thread-count 8
subvolumes locks
end-volume

volume server
type protocol/server
option transport-type tcp
option auth.addr.brick.allow 192.168.0.101 # Edit and add list of allowed clients comma separated IP addrs(names) here
subvolumes brick
end-volume

Lưu ý rằng chúng ta vẫn có thể sử dụng được các ký hiệu đặc biệt với địa chỉ IP (ví dụ 192.168.*) và sau đó phân chia riêng rẽ các địa chỉ IP bằng dấu phẩy (ví dụ 192.168.0.101,192.168.0.102). Sau đó hãy khởi động server GlusterFS:

/etc/init.d/glusterfs-server start


Cài đặt và thiết lập hệ thống Client GlusterFS

Với client1.example.com, chúng ta có thể cài đặt GlusterFS client như sau:

aptitude install glusterfs-client glusterfs-server

Sau đó tạo thư mục:

mkdir /mnt/glusterfs

Và tạo file /etc/glusterfs/glusterfs.vol (cũng như với server, chúng ta nên sao lưu file cấu hình /etc/glusterfs/glusterfs.vol này trước):

cp /etc/glusterfs/glusterfs.vol /etc/glusterfs/glusterfs.vol_orig
cat /dev/null > /etc/glusterfs/glusterfs.vol
vi /etc/glusterfs/glusterfs.vol

volume remote
type protocol/client
option transport-type tcp
option remote-host server1.example.com # can be IP or hostname
option remote-subvolume brick
end-volume

volume writebehind
type performance/write-behind
option window-size 4MB
subvolumes remote
end-volume

volume cache
type performance/io-cache
option cache-size 512MB
subvolumes writebehind
end-volume

Hãy chắc chắn tham số hostname hoặc địa chỉ IP trong dòng option remote-host được khai báo chuẩn xác với hệ thống. Bây giờ chúng ta có thể ghép file hệ thống GlusterFS tới /mnt/glusterfs bằng 1 trong 2 câu lệnh sau:

glusterfs -f /etc/glusterfs/glusterfs.vol /mnt/glusterfs

hoặc

mount -t glusterfs /etc/glusterfs/glusterfs.vol /mnt/glusterfs

Khi sử dụng lệnh mount, các bạn sẽ thấy kết quả trả về tương tự như sau:

root@client1:~# mount
/dev/mapper/server2-root on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
none on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
none on /dev type devtmpfs (rw,mode=0755)
none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
none on /dev/shm type tmpfs (rw,nosuid,nodev)
none on /var/run type tmpfs (rw,nosuid,mode=0755)
none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)
none on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
none on /var/lib/ureadahead/debugfs type debugfs (rw,relatime)
/dev/sda1 on /boot type ext2 (rw)
/etc/glusterfs/glusterfs.vol on /mnt/glusterfs type fuse.glusterfs (rw,allow_other,default_permissions,max_read=131072)
root@client1:~#

và:

df -h

root@client1:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/server2-root
29G 851M 26G 4% /
none 243M 172K 242M 1% /dev
none 247M 0 247M 0% /dev/shm
none 247M 36K 247M 1% /var/run
none 247M 0 247M 0% /var/lock
none 247M 0 247M 0% /lib/init/rw
none 29G 851M 26G 4% /var/lib/ureadahead/debugfs
/dev/sda1 228M 17M 199M 8% /boot
/etc/glusterfs/glusterfs.vol
18G 848M 16G 5% /mnt/glusterfs
root@client1:~#

Thay vì phải ghép các chia sẻ lần lượt từ GlusterFS trên hệ thống client, các bạn có thể can thiệp vào file /etc/fstab để quá trình này tự động khi client được kích hoạt. Mở file /etc/fstab và thêm dòng mã sau:

vi /etc/fstab

[...]
/etc/glusterfs/glusterfs.vol /mnt/glusterfs glusterfs defaults 0 0

Để kiểm tra lại sau khi chỉnh sửa file /etc/fstab hệ thống có hoạt động bình thường hay không, khởi động lại client:

reboot

dùng lệnh df -h và mount để kiểm tra danh sách hiển thị các liên kết chia sẻ bên trong đó.

Trên đây là 1 số bước cơ bản để cài đặt và thiết lập hệ thống lưu trữ độc lập tương tự NFS với GlusterFS trên Ubuntu 10.04. Chúc các bạn thành công!

Thứ Năm, 16/09/2010 13:51
31 👨 1.890