Skip to main content

Openstack manila phần 4: Native GlusterFS Driver

Tiếp tục loạt bài về Openstack Manila hôm nay tôi sẽ cấu hình backend sử dụng GlusterFS
  • Yêu cầu phiên bản GlusterFS >= 3.6. Với glusterfs nếu cluster của bạn không hỗ trợ snapshot thì trên manila cũng sẽ mất đi tính năng này. Để cấu hình snapshot ta sẽ cấu hình Thin Provision theo bài hướng dẫn link
  • Với bài lab của mình có 2 node và chạy kiểu replicate. Mình sẽ tạo các thinly provisioned và tạo volume trên đó.
Mô hình cài đặt
Cài đặt glusterfs-v3.7
add-apt-repository ppa:gluster/glusterfs-3.7 -y  
apt-get update  
apt-get install glusterfs-server -y
Tham khảo script tạo thin LV và gluster volume
Script tạo thinly provisioned chạy trên 2 node
apt-get install xfsprogs -y  
pvcreate /dev/sdb  
vgcreate myVG /dev/sdb  
lvcreate -L 8G -T myVG/thinpool  
for ((i = 1;i<= 5; i++ ))  
do  
mkdir -p /manila/manila-"$i"  
for (( j = 1; j<= 5; j++))  
do  
lvcreate -V "${i}"Gb -T myVG/thinpool -n vol-"$i"-"$j"  
mkfs.xfs /dev/myVG/vol-"$i"-"$j"  
mkdir -p /manila/manila-"$i"/manila-"$j"  
mount /dev/myVG/vol-"$i"-"$j" /manila/manila-"$i"/manila-"$j"  
echo "/dev/myVG/vol-"$i"-"$j" /manila/manila-"$i"/manila-"$j" xfs 0 2" >> /etc/fstab  
done  
done  
Tạo gluster volume chỉ cần chạy trên 1 node
for (( i= 1 ; i <= 5; i++))  
do  
for(( j= 1; j<=5 ;j++))  
do  
gluster volume create manila-"$i"-"$j" replica 2 glusterfs-1:/manila/manila-"$i"/manila-"$j"/br glusterfs-2:/manila/manila-"$i"/manila-"$j"/br  
gluster volume start manila-"$i"-"$j"  
done  
done
  • Với backend là GlusterFS việc quản lý truy cập vào share file trên manila sẽ thông qua certificate do vậy ta cần cấu hình SSL cho client và server.
Tạo key và CA trên server. Mình sẽ copy key và ca tới tất cả server glusterfs
cd /etc/ssl  
openssl genrsa -out glusterfs.key 1024  
openssl req -new -x509 -key glusterfs.key -subj /CN=saphi -out glusterfs.pem  
cp glusterfs.pem glusterfs.ca  
Ở đây ta tạo CA có CN=saphi trên manila ta sẽ tạo access-allow cho CA của saphi
  • Cấu hình GlusterFS tương tự như LVM mình sẽ sử dụng node compute để cài manila-share.
Cấu hình manila-share tại file /etc/manila/manila.conf
Enable backend glusterfsnative và protocol GLUSTERFS tại mục [DEFAULT]
enabled_share_backends= glusterfsnative #glusterfsnative là tên phần backend  
enabled_share_protocols=NFS,CIFS,GLUSTERFS #giao thức cho phép
Cấu hình backend glusterfsnative như sau
[glusterfsnative]
share_backend_name = glusterfsnative # tên backend  
glusterfs_servers = root@glusterfs1 # khai báo user,IP của gluster server, nếu có nhiều server glusterfs cách nhau bằng dấu phẩy  
glusterfs_server_password = saphi # password để manila-host ssh vào glusterfs server  
glusterfs_volume_pattern = manila-#{size}-.* # pattern volume trên manila khi tạo share mapping với volume trên glusterfs  
share_driver = manila.share.drivers.glusterfs.glusterfs_native.GlusterfsNativeShareDriver # share driver sử dụng  
driver_handles_share_servers = False  # False: không sử dụng driver xử lý share server  

Nói thêm về volume-pattern:
Với script ở trên mình đã tạo các volume có mẫu manila-$i-$j với $i là size của volume và $j là số thứ tự. Do vậy ta sẽ cấu hình mẫu để các share manila khi tạo ra sẽ mapping với các volume trên glusterfs.
  • Sau khi cấu hình xong ta khởi động lại manila-share
service manila-share restart  
  • Kiểm tra service manila sẽ có thêm service cho glusterfsnative
  • Trên node controller cần phải enable protocol GLUSTERFS vì mặc định chỉ enable NFS và CIFS
thêm dòng sau vào mục [DEFAULT] trong /etc/manila/manila.conf
enabled_share_protocols=NFS,CIFS,GLUSTERFS  
sau đó restart lại manila
service manila-api restart  
service manila-scheduler restart  
  • Tạo share-type
manila type-create glusterfsnative False # tạo type tên là glusterfsnative DHSS = False  
manila type-key glusterfsnative set share_backend_name=glusterfsnative # khai báo backend cho type này  
  • Tạo share
manila create glusterfs 2 --name gluster-1 --share-type glusterfsnative  
  • Tạo access-allow cho CA có CN=saphi
Ta thấy access-type ở đây là cert
  • Kiểm tra đường dẫn mount path
  • Thực hiện mount trên client
Client cần cài gói glusterfs-client
add-apt-repository ppa:gluster/glusterfs-3.7 -y  
apt-get update  
apt-get install glusterfs-client -y  
Client cần CA có CN=saphi và server phải biết CA này tôi sẽ copy key và CA trên server về client sau đó thực hiện mount
mount -t glusterfs glusterfs1:/manila-2-1 /mnt  

Comments

  1. Is The Deposit Casino Safe? | How To Make A Deposit
    So, let's say you deposit 강원 랜드 여자 노숙자 $10 and your 이 스포츠 first deposit will match $50, with 골드머니 a $100 welcome bonus up 실시간 스포츠 스코어 to $1,000. For example, if you are making 라이브스코어사이트 a $10 deposit,

    ReplyDelete

Post a Comment

Popular posts from this blog

Merge AVHDX Hyper-V Checkpoints

When you create a snapshot of a virtual machine in Microsoft Hyper-V, a new file is created with the  .avhdx  file extension. The name of the file begins with the name of its parent VHDX file, but it also has a GUID following that, uniquely representing that checkpoint (sometimes called snapshots). You can see an example of this in the Windows Explorer screenshot below. Creating lots of snapshots will result in many  .avhdx  files, which can quickly become unmanageable. Consequently, you might want to merge these files together. If you want to merge the  .avhdx  file with its parent  .vhdx  file, it’s quite easy to accomplish. PowerShell Method Windows 10 includes support for a  Merge-VHD  PowerShell command, which is incredibly easy to use. In fact, you don’t even need to be running PowerShell “as Administrator” in order to merge VHDX files that you have access to. All you need to do is call  Merge-VHD  with the  -Path  parameter, pointing to the  .avhdx  file, and the  -Des

Zabbix, AWS and Auto Registration

One of the things I love the most with AWS is  auto-scaling . You choose an AMI, set some parameters and AWS will spin instances up and down whenever a threshold is breached. But with all these instances spinning up and down there are some unknowns. For example, what is the IP address of the new instance? Its host name? This can be critical when other components of your infrastructure are dependent on knowing these parameters. I had this problem when I started to use  Zabbix  as the monitoring system. At first it seemed like a complicated one, but Zabbix has a wonderful feature called  Auto Registration  which can be used exactly for this situation. I will try to show how to configure auto registration both on the client (EC2 instance running Ubuntu 14.04) and on the Zabbix server (Zabbix Server 2.4.2). Zabbix-agent Installation and Configuration Let’s start with installing zabbix-agent on the Ubuntu client: 1 2 $ sudo apt-get update $ sudo apt-get install -y zab