मैं 4 मशीनों में वॉल्यूम बनाने और माउंट करने के लिए GlusterFS का उपयोग कर रहा हूं। कहते हैं, उदाहरण के लिए मशीनों कहा जाता है 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 कमांडों के साथ किया था?