আমি 4 টি মেশিনে ভলিউম তৈরি করতে এবং মাউন্ট করতে গ্লাস্টারএফ ব্যবহার করছি। বলুন উদাহরণস্বরূপ, মেশিন বলা হয় machine1
, machine2
, machine3
এবং machine4
।
আমার সহকর্মীরা ইতিমধ্যে সফলভাবে অনুসন্ধান করা হয়েছে।
আমি আমার ভলিউম তৈরি করতে নিম্নলিখিত কমান্ডটি ব্যবহার করেছি:
sudo gluster volume create ssl replica 2 transport tcp machine1:/srv/gluster/ssl machine2:/srv/gluster/ssl machine3:/srv/gluster/ssl machine4:/srv/gluster/ssl force
আমি এরপরে ভলিউমটি শুরু করব:
sudo gluster volume start ssl
আমি /myproject/ssl
নিম্নলিখিত কমান্ডটি ব্যবহার করে ডিরেক্টরিটি মাউন্ট করেছি :
sudo mount -t glusterfs machine1:/ssl /myproject/ssl
প্রতিটি মেশিনে মাউন্ট করা হলে, সবকিছু প্রত্যাশা অনুযায়ী কাজ করে এবং /myproject/ssl
ডিরেক্টরিটিতে সমস্ত মেশিনে ডেটা ভাগ করা থাকে।
প্রশ্নটি হল, পৃথিবীতে আমি কীভাবে এই উত্তরীয় পদ্ধতিটি করব?
এই দু'টি কমান্ডকে জবাবদিহি করার পদ্ধতিতে এখানে আমার প্রচেষ্টা রয়েছে:
- name: Configure Gluster volume.
gluster_volume:
state: present
name: "{{ gluster.brick_name }}"
brick: "{{ gluster.brick_dir }}"
replicas: 2
cluster: "{{ groups.glusterssl | join(',') }}"
host: "{{ inventory_hostname }}"
force: yes
become: true
become_user: root
become_method: sudo
run_once: true
ignore_errors: true
- name: Ensure Gluster volume is mounted.
mount:
name: "{{ gluster.brick_name }}"
src: "{{ inventory_hostname }}:/{{ gluster.brick_name }}"
fstype: glusterfs
opts: "defaults,_netdev"
state: mounted
become: true
become_user: root
become_method: sudo
পূর্ববর্তী কোনও কার্যক্রমে ইতিমধ্যে সফলভাবে ফিরে আসা পিয়ার প্রোব সত্ত্বেও, Configure Gluster volume
টাস্কটি এতে ব্যর্থ হয়:
fatal: [machine3]: FAILED! =>
{"changed": false,
"failed": true,
"invocation": {
"module_args": {
"brick": "/srv/gluster/ssl",
"bricks": "/srv/gluster/ssl",
"cluster": ["machine1", "machine2", "machine3", "machine4"],
"directory": null,
"force": true,
"host": "machine3",
"name": "ssl",
"options": {},
"quota": null,
"rebalance": false,
"replicas": 2,
"start_on_create": true,
"state": "present",
"stripes": null,
"transport": "tcp"},
"module_name": "gluster_volume"},
"msg": "failed to probe peer machine1 on machine3"}
আমি প্রস্তাবিত প্রথম শেল কমান্ডের সাথে যদি আমি এই উত্তরীয় কাজটি প্রতিস্থাপন করি তবে সবকিছু ঠিকঠাক কাজ করে তবে তার সাথে Ensure Gluster volume is mounted
ব্যর্থ হয়:
fatal: [machine3]: FAILED! =>
{"changed": false,
"failed": true,
"invocation": {
"module_args": {
"dump": null,
"fstab": "/etc/fstab",
"fstype": "glusterfs",
"name": "ssl", "opts":
"defaults,_netdev",
"passno": null, "src":
"machine3:/ssl",
"state": "mounted"},
"module_name": "mount"},
"msg": "Error mounting ssl: Mount failed. Please check the log file for more details.\n"}
সম্পর্কিত লগ আউটপুট হল:
[2016-10-17 09:10:25.602431] E [MSGID: 114058] [client-handshake.c:1524:client_query_portmap
_cbk] 2-ssl-client-3: failed to get the port number for remote subvolume. Please run 'gluster volume status' on server to see if brick process is running.
[2016-10-17 09:10:25.602480] I [MSGID: 114018] [client.c:2042:client_rpc_notify] 2-ssl-client-3: disconnected from ssl-client-3. Client process will keep trying to connect to glusterd until brick's port is available
[2016-10-17 09:10:25.602500] E [MSGID: 108006] [afr-common.c:3880:afr_notify] 2-ssl-replicate-1: All subvolumes are down. Going offline until atleast one of them comes back up.
[2016-10-17 09:10:25.616402] I [fuse-bridge.c:5137:fuse_graph_setup] 0-fuse: switched to graph 2
সুতরাং, ভলিউমটি উত্তরীয় কাজ দ্বারা শুরু হয় না।
আমার প্রশ্নটি মূলত, আমি উল্লিখিত 3 টি আদেশ, উত্তরীয় পদ্ধতিতে কীভাবে একটি ভলিউম তৈরি করব, মাউন্ট করব এবং শুরু করব?