Skip to content

Commit ecc5161

Browse files
authored
Merge pull request #867 from jayeshh123/jay_remove_fileset_chng
Removed Multiple Fileset Creation Changes
2 parents db10ec0 + 390302e commit ecc5161

File tree

4 files changed

+77
-138
lines changed

4 files changed

+77
-138
lines changed

roles/core_configure/tasks/storage.yml

-5
Original file line numberDiff line numberDiff line change
@@ -99,19 +99,14 @@
9999
when:
100100
- item.size > 1
101101
with_items: "{{ scale_storage_stanzafile_new.results }}"
102-
register: scale_existig_nsd_list
103102

104103
- block:
105104
- debug:
106105
msg: Wait for 240 second for NSD configuration to be synced across cluster. Please be patient...
107-
loop: "{{ scale_existig_nsd_list.results }}"
108-
when: item.changed == true
109106

110107
- name: storage | Wait for NSD configuration to be synced across cluster
111108
wait_for:
112109
timeout: 240
113-
loop: "{{ scale_existig_nsd_list.results }}"
114-
when: item.changed == true
115110

116111
- name: storage | wait-nsd-active
117112
shell: /usr/lpp/mmfs/bin/mmlsnsd -a -Y | grep -v HEADER | cut -d ':' -f 8

roles/core_configure/tasks/storage_fileset.yml

+64-101
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,8 @@
33
##################### Fileset configuration For CES Nodes #####################
44

55
# First verifing if fileset already exists if not then creating Independent fileset linking it and printing it.
6-
7-
- name: config | Create a list of configuration parameters for filesets
8-
set_fact:
9-
config_filset: >
10-
{%- set config_filset = [] -%}
11-
{%- for storage in scale_storage -%}
12-
{%- for fileset_name, quota in storage.filesets.items() -%}
13-
{{ config_filset.append({
14-
'filesystem': storage.filesystem,
15-
'fileset_name': fileset_name,
16-
'quota': quota,
17-
'defaultMountPoint': storage.defaultMountPoint
18-
}) }}
19-
{%- endfor -%}
20-
{%- endfor -%}
21-
{{ config_filset }}
22-
run_once: true
23-
24-
- name: debug | Display scale_storage content
25-
debug:
26-
var: config_filset
27-
run_once: true
28-
296
- name: Fileset Creation
307
block: ## run_once: true
31-
328
- name: storage | Find existing filesystem(s)
339
shell: /usr/lpp/mmfs/bin/mmlsfs all -Y | grep -v HEADER | cut -d ':' -f 7 | uniq
3410
register: scale_storage_existing_fs
@@ -40,97 +16,82 @@
4016
var: scale_storage_existing_fs.stdout
4117
ignore_errors: yes
4218

43-
- name: Check if fileset in filesystem already exists
44-
shell: "/usr/lpp/mmfs/bin/mmlsfileset {{ item.filesystem }} | tail -n +3 | awk '{print $1}' | grep -w {{ item.fileset_name }}"
45-
loop: "{{ config_filset }}"
46-
loop_control:
47-
label: "{{ item.filesystem }}: {{ item.fileset_name }}"
19+
- name: Check if fileset in file system already exists
20+
shell: "/usr/lpp/mmfs/bin/mmlsfileset {{ scale_storage_existing_fs.stdout }} | tail -n +3 | awk '{print $1}' | grep -w {{ item.key }}"
21+
loop: "{{ scale_storage[0].filesets | dict2items }}"
4822
register: filesets_result
23+
ignore_errors: yes
4924
failed_when: false
5025

5126
- name: Print return code for each fileset
5227
debug:
53-
msg: "Fileset {{ item.item.fileset_name }} - Return Code: {{ item.rc }}"
28+
msg: "Fileset {{ item.item.key }} - Return Code: {{ item.rc }}"
5429
loop: "{{ filesets_result.results }}"
5530
loop_control:
56-
label: "{{ item.item.filesystem }}: {{ item.item.fileset_name }}"
31+
loop_var: item
5732

5833
- name: Create new fileset
59-
shell: "/usr/lpp/mmfs/bin/mmcrfileset {{ item.item.filesystem }} {{ item.item.fileset_name }} --inode-space new"
34+
shell: "/usr/lpp/mmfs/bin/mmcrfileset {{ scale_storage_existing_fs.stdout }} {{ item.item.key }} --inode-space new"
6035
loop: "{{ filesets_result.results }}"
61-
loop_control:
62-
label: "{{ item.item.filesystem }}: {{ item.item.fileset_name }}"
6336
register: created_fileset
6437
when: item.rc != 0
6538

6639
- name: Print return code for created filesets
6740
debug:
68-
msg: "Fileset {{ item.item.item.fileset_name }} in {{ item.item.item.filesystem }} - Return Code: {{ item.item.rc }}"
41+
msg: "Fileset_created {{ item.item.item.key }} - Return Code: {{ item.item.rc }}"
6942
loop: "{{ created_fileset.results }}"
7043
loop_control:
71-
label: "{{ item.item.stdout }}"
44+
loop_var: item
7245

7346
- name: Link new fileset
74-
shell: "/usr/lpp/mmfs/bin/mmlinkfileset {{ item.item.item.filesystem }} {{ item.item.item.fileset_name }} -J {{ item.item.item.defaultMountPoint }}/{{ item.item.item.fileset_name }}"
75-
register: link_fileset
47+
shell: "/usr/lpp/mmfs/bin/mmlinkfileset {{ scale_storage_existing_fs.stdout }} {{ item.item.item.key }} -J {{ scale_storage[0].defaultMountPoint }}/{{ item.item.item.key }}"
7648
loop: "{{ created_fileset.results }}"
77-
loop_control:
78-
label: "{{ item.item.stdout }}"
7949
when: item.changed == true
8050

81-
- name: Check filesets with its links in the filesystem
82-
command: /usr/lpp/mmfs/bin/mmlsfileset {{ item.item.item.item.filesystem }}
83-
register: linked_filesets
84-
loop: "{{ link_fileset.results }}"
85-
loop_control:
86-
label: "{{ item.item.item.stdout }}"
51+
- name: Check filesets in file system
52+
command: /usr/lpp/mmfs/bin/mmlsfileset {{ scale_storage_existing_fs.stdout }}
53+
register: filesets
54+
ignore_errors: yes
8755

88-
- name: Debug the filesets with its link in the filesystem
56+
- name: Debug the filesets in file system
8957
debug:
90-
msg: "{{ item.stdout_lines }}"
91-
loop: "{{ linked_filesets.results }}"
92-
loop_control:
93-
label: "{{ item.item.item.item.stdout_lines }}"
58+
var: filesets.stdout_lines
59+
ignore_errors: yes
9460

9561
run_once: true
62+
delegate_to: "{{ groups['scale_cluster_admin_nodes'].0 }}"
9663

9764
# Setting up quota for filesets
9865

9966
- name: Quota allocation for filesets
10067
block: ## run_once: true
10168
- name: Check quota is already enabled
102-
shell: "/usr/lpp/mmfs/bin/mmlsfs {{ item.item.item.filesystem }} -Y | grep -w 'quotasAccountingEnabled' | grep -w 'user;group;fileset'"
103-
loop: "{{ created_fileset.results }}"
104-
loop_control:
105-
label: "{{ item.item.stdout }}"
106-
register: check_quota_enabled
107-
failed_when: check_quota_enabled.rc == 2
108-
when: item.item.item.quota > 0
69+
shell: "/usr/lpp/mmfs/bin/mmlsfs {{ scale_storage_existing_fs.stdout }} -Y | grep -w 'quotasAccountingEnabled' | grep -w 'user;group;fileset'"
70+
register: enable_quota_check
71+
loop: "{{ scale_storage[0].filesets | dict2items }}"
72+
ignore_errors: yes
73+
failed_when: enable_quota_check.rc == 2
74+
when: item.value > 0
10975

110-
- name: Debug to check if quota is already enabled
111-
debug:
112-
msg: >
113-
Quota check for {{ item.item.item.item.filesystem }}:
114-
{{ 'Quota enabled' if item.stdout_lines else 'Quota not enabled' }}
115-
loop: "{{ check_quota_enabled.results }}"
116-
loop_control:
117-
label: "{{ item.item.item.item.filesystem }}"
118-
when: item.item.item.item.quota > 0
76+
- name: Debug to check it quota is already enabled
77+
debug:
78+
msg: "Command to check if quota is already enabled: {{ item.0.cmd }}"
79+
ignore_errors: yes
80+
with_together:
81+
- "{{ enable_quota_check.results }}"
82+
- "{{ scale_storage[0].filesets | dict2items }}"
83+
when: item.1.value > 0
11984

12085
- name: Run mmchfs command and enable quota
121-
shell: "/usr/lpp/mmfs/bin/mmchfs {{ item.item.item.filesystem }} -Q yes --perfileset-quota"
86+
shell: "/usr/lpp/mmfs/bin/mmchfs {{ scale_storage_existing_fs.stdout }} -Q yes --perfileset-quota"
12287
register: enable_quota
123-
loop: "{{ created_fileset.results }}"
124-
loop_control:
125-
label: "{{ item.item.stdout }}"
126-
when: item.item.item.quota > 0 and item.item.rc != 0
88+
loop: "{{ enable_quota_check.results }}"
89+
when: item.item.value > 0 and item.rc != 0
12790

12891
- name: Run mmcheckquota command
129-
shell: "/usr/lpp/mmfs/bin/mmcheckquota {{ item.item.item.item.filesystem }}"
92+
shell: "/usr/lpp/mmfs/bin/mmcheckquota {{ scale_storage_existing_fs.stdout }}"
13093
register: quota_check
131-
loop: "{{ check_quota_enabled.results }}"
132-
loop_control:
133-
label: "{{ item.item.item.item.filesystem }}"
94+
loop: "{{ enable_quota_check.results }}"
13495
when: item.changed == true
13596

13697
- name: Debug the mmcheckquota command
@@ -140,53 +101,55 @@
140101
loop: "{{ quota_check.results }}"
141102
when: item.changed == true
142103

104+
- name: Debug fileset and quota to be set for it.
105+
debug:
106+
msg: "{{ item.key }}: {{ item.value }}GB"
107+
loop: "{{ scale_storage[0].filesets | dict2items }}"
108+
ignore_errors: yes
109+
when: item.value > 0
110+
143111
- name: Check if quota for fileset is already set
144-
shell: "/usr/lpp/mmfs/bin/mmlsquota -j {{ item.item.item.fileset_name }} -Y {{ item.item.item.filesystem }} | grep -v HEADER | cut -d ':' -f 13"
112+
shell: "/usr/lpp/mmfs/bin/mmlsquota -j {{ item.item.item.key }} -Y {{ scale_storage_existing_fs.stdout }} | grep -v HEADER | cut -d ':' -f 13"
145113
loop: "{{ created_fileset.results }}"
146114
register: existing_quota_details
147-
loop_control:
148-
label: "{{ item.item.stdout }}"
149-
when: item.item.item.quota > 0
115+
ignore_errors: yes
116+
when: item.item.item.value > 0
150117

151118
- name: Debug if quota for fileset is already set
152119
debug:
153-
msg: "Fileset name: {{ item.item.item.item.fileset_name }} Quota allocated: {{ item.item.item.item.quota }} Return Code: {{ item.item.item.rc }}"
120+
msg: "Fileset name: {{ item.item.item.item.key }} Quota allocated: {{ item.stdout }}"
154121
loop: "{{ existing_quota_details.results }}"
155-
loop_control:
156-
label: "{{ item.item.item.item.filesystem }}"
157-
when: item.item.item.item.quota > 0
122+
ignore_errors: yes
123+
when: item.item.item.item.value > 0
158124

159125
- name: Run mmsetquota command
160-
shell: "/usr/lpp/mmfs/bin/mmsetquota {{ item.item.item.item.filesystem }}:{{ item.item.item.item.fileset_name }} --block {{ (item.item.item.item.quota * 0.8) | int }}g:{{ item.item.item.item.quota }}g"
161-
register: set_quota
126+
shell: "/usr/lpp/mmfs/bin/mmsetquota {{ scale_storage_existing_fs.stdout }}:{{ item.item.item.item.key }} --block {{ (item.item.item.item.value * 0.8) | int }}g:{{ item.item.item.item.value }}g"
162127
loop: "{{ existing_quota_details.results }}"
163-
loop_control:
164-
label: "{{ item.item.item.item.filesystem }}"
165-
when: item.item.item.item.quota > 0 and item.stdout | int == 0
128+
register: set_quota
129+
when: item.item.item.item.value > 0 and item.stdout | int == 0
166130

167131
- name: Run mmlsquota command
168-
shell: "/usr/lpp/mmfs/bin/mmlsquota -j {{ item.item.item.item.item.fileset_name }} {{ item.item.item.item.item.filesystem }}"
169-
register: quota_details
132+
shell: "/usr/lpp/mmfs/bin/mmlsquota -j {{ item.item.item.item.item.key }} {{ scale_storage_existing_fs.stdout }}"
170133
loop: "{{ set_quota.results }}"
171-
loop_control:
172-
label: "{{ item.item.item.item.item.filesystem }}"
173-
when: item.item.item.item.item.quota > 0
134+
register: quota_details
135+
ignore_errors: yes
136+
when: item.item.item.item.item.value > 0
174137

175138
- name: Debug the after setting quota
176139
debug:
177140
msg: "{{ item.stdout_lines }}"
178141
loop: "{{ quota_details.results }}"
179-
loop_control:
180-
label: "{{ item.item.item.item.item.item.filesystem }}"
181-
when: item.item.item.item.item.item.quota > 0
142+
ignore_errors: yes
143+
when: item.item.item.item.item.item.value > 0
182144

183145
run_once: true
146+
delegate_to: "{{ groups['scale_cluster_admin_nodes'].0 }}"
184147

185148
- name: Update permissions for userinput filesets
186149
shell: >
187-
find {{ item.defaultMountPoint }}/{{ item.fileset_name }} -type d ! -path '{{ item.defaultMountPoint }}/{{ item.fileset_name }}/.snapshots' -exec chmod 777 {} +
188-
loop: "{{ config_filset }}"
150+
find {{ scale_storage[0].defaultMountPoint }}/{{ item.key }} -type d ! -path '{{ scale_storage[0].defaultMountPoint }}/{{ item.key }}/.snapshots' -exec chmod 777 {} +
151+
loop: "{{ scale_storage[0].filesets | dict2items }}"
189152
loop_control:
190-
label: "{{ item.defaultMountPoint }}: {{ item.fileset_name }}"
153+
label: "{{ item.key }}"
191154
run_once: true
192-
when: item.fileset_name is defined
155+
when: scale_storage[0].filesets is defined
+9-32
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,28 @@
11
---
22
# Checking if NFS export list if already exists if not then Creating NFS export.
33

4-
- name: config | Create a list of configuration parameters for filesets
5-
set_fact:
6-
config_filset: >
7-
{%- set config_filset = [] -%}
8-
{%- for storage in scale_storage -%}
9-
{%- for fileset_name, quota in storage.filesets.items() -%}
10-
{{ config_filset.append({
11-
'filesystem': storage.filesystem,
12-
'fileset_name': fileset_name,
13-
'quota': quota,
14-
'defaultMountPoint': storage.defaultMountPoint
15-
}) }}
16-
{%- endfor -%}
17-
{%- endfor -%}
18-
{{ config_filset }}
19-
run_once: true
20-
214
- name: Check NFS export list if already exists
22-
shell: "/usr/lpp/mmfs/bin/mmnfs export list -Y | tail -n +2 | awk -F: '{print $7, $8}' | sort -k2 | awk '{print $1}' | grep -w {{ item.defaultMountPoint }}/{{ item.fileset_name }}"
5+
shell: "/usr/lpp/mmfs/bin/mmnfs export list -Y | tail -n +2 | awk -F: '{print $7, $8}' | sort -k2 | awk '{print $1}' | grep -w {{ scale_protocols.mountpoint }}/{{ item }}"
6+
loop: "{{ scale_protocols.exports }}"
237
register: export_list_exists
24-
loop: "{{ config_filset }}"
25-
loop_control:
26-
label: "{{ item.defaultMountPoint }}: {{ item.fileset_name }}"
278
failed_when: export_list_exists.rc == 2
289
when: is_admin_node | default(false) == true
2910
run_once: true
30-
11+
3112
- name: Print return code of NFS export list
3213
debug:
33-
msg: "Export_list {{ item.item.fileset_name }} - Return Code: {{ item.rc }}"
14+
msg: "Export_list {{ item.item }} - Return Code: {{ item.rc }}"
3415
loop: "{{ export_list_exists.results }}"
3516
loop_control:
36-
label: "{{ item.item.fileset_name }}"
17+
loop_var: item
3718
when: is_admin_node | default(false) == true
38-
run_once: true
19+
ignore_errors: yes
3920

4021
- name: Create NFS export
4122
shell: |
42-
/usr/lpp/mmfs/bin/mmnfs export add {{ item.item.defaultMountPoint }}/{{ item.item.fileset_name }} --client "{{ compute_subnet_cidr }}(Access_Type=RW,SQUASH=root_squash)"
23+
/usr/lpp/mmfs/bin/mmnfs export add {{ scale_protocols.mountpoint }}/{{ item.item }} --client "{{ compute_subnet_cidr }}(Access_Type=RW,SQUASH=root_squash)"
4324
sleep 10 #This is temporary fix for Dbus error.
44-
loop: "{{ export_list_exists.results }}"
45-
loop_control:
46-
label: "{{ item.item.fileset_name }}"
25+
with_items: "{{ export_list_exists.results }}"
4726
register: created_nfs_export
4827
when: is_admin_node | default(false) == true and item.rc != 0
4928
run_once: true
@@ -63,8 +42,6 @@
6342
- name: Change MINOR_VERSIONS
6443
shell: "/usr/lpp/mmfs/bin/mmnfs config change MINOR_VERSIONS=0,1"
6544
register: change_minor_versions
66-
loop: "{{ export_list_exists.results }}"
67-
loop_control:
68-
label: "{{ item.item.fileset_name }}"
45+
with_items: "{{ export_list_exists.results }}"
6946
when: is_admin_node | default(false) == true and item.rc != 0
7047
run_once: true

samples/vars/storage_fileset_vars.yml

+4
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@
1414
# would apply them to all hosts in the group/play, thus defining the same disk
1515
# multiple times...
1616

17+
# In the below example, we will create two filesets: binaries and data. The binaries
18+
# fileset will have a quota of 0, meaning it has no storage allocation limit, while
19+
# the data fileset will have a quota of 50 GB
20+
1721
scale_storage:
1822
- filesystem: gpfs01
1923
filesets:

0 commit comments

Comments
 (0)