Skip to content
This repository was archived by the owner on Mar 30, 2023. It is now read-only.

Commit b780e7a

Browse files
authored
Merge pull request #58 from RSE-Cambridge/lvm
add lvm and DNE2 changes for prod dac
2 parents 95b3f1d + 3b7d322 commit b780e7a

4 files changed

Lines changed: 99 additions & 37 deletions

File tree

fs-ansible/roles/lustre/tasks/format.yaml

Lines changed: 86 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
- set_fact:
33
mgs: "{{ vars[fs_name + '_mgs'] | default(omit) }}"
4-
mgsnode: "{{ vars[fs_name + '_mgsnode'] }}"
4+
mgsnode: "{{ vars[fs_name + '_mgsnode']}}"
55
mdts: "{{ vars[fs_name + '_mdts'] | default({}) }}"
66
osts: "{{ vars[fs_name + '_osts'] | default({}) }}"
77
client_port: "{{ vars[fs_name + '_client_port'] }}"
@@ -23,61 +23,116 @@
2323
- mgs is defined
2424
tags: [ 'never', 'reformat_mgs']
2525

26-
- name: Remove old MDT Partition
27-
parted:
28-
device: "/dev/{{ item }}"
29-
number: 1
30-
state: absent
26+
- name: Clean LVM
27+
block:
28+
- name: Remove LV for MDT
29+
lvol:
30+
lv: "mdt"
31+
vg: "dac-{{ item }}"
32+
state: absent
33+
force: yes
34+
loop: "{{ mdts.keys() }}"
35+
36+
- name: Remove VG
37+
lvg:
38+
vg: "dac-{{ item }}"
39+
pvs: "/dev/{{ item }}"
40+
force: yes
41+
state: absent
42+
loop: "{{ mdts.keys() }}"
43+
44+
- name: dmsetup remove lvm
45+
command: "dmsetup remove dac--{{ item }}-mdt"
46+
register: command_result
47+
failed_when: "command_result.rc != 0 and ('device' not in command_result.stderr)"
48+
loop: "{{ mdts.keys() }}"
49+
50+
51+
when:
52+
- mdts is defined
53+
tags: [ 'never', 'reformat_mdts', 'format']
54+
55+
- name: Add VG
56+
lvg:
57+
vg: "dac-{{ item }}"
58+
pvs: "/dev/{{ item }}"
59+
state: present
3160
loop: "{{ mdts.keys() }}"
3261
when:
3362
- mdts is defined
3463
tags: [ 'never', 'reformat_mdts', 'format']
3564

36-
- name: Add MDT Partition
37-
parted:
38-
device: "/dev/{{ item }}"
39-
number: 1
40-
part_start: "0%"
41-
part_end: "{{ mdt_size }}"
42-
label: gpt
43-
state: present
65+
- name: Add LV for MDT
66+
lvol:
67+
lv: "mdt"
68+
vg: "dac-{{ item }}"
69+
size: "{{ mdt_size }}"
70+
state: present
4471
loop: "{{ mdts.keys() }}"
4572
when:
4673
- mdts is defined
4774
tags: [ 'never', 'reformat_mdts', 'format']
4875

4976
- name: Reformat MDTs
50-
command: "/usr/sbin/mkfs.lustre --mdt --reformat --fsname={{ fs_name }} --index={{ item.value }} --mgsnode={{ mgsnode }}{{ lnet_suffix }} /dev/{{ item.key }}p1"
77+
command: "/usr/sbin/mkfs.lustre --mdt --reformat --fsname={{ fs_name }} --index={{ item.value }} --mgsnode={{ mgsnode }}{{ lnet_suffix }} --mkfsoptions=\"-O large_dir\" /dev/mapper/dac--{{ item.key }}-mdt"
5178
loop: "{{ mdts|dict2items }}"
5279
when:
5380
- mdts is defined
5481
tags: [ 'never', 'reformat_mdts', 'format']
5582

56-
- name: Remove old OST Partition
57-
parted:
58-
device: "/dev/{{ item }}"
59-
number: 2
60-
state: absent
83+
84+
- name: Clean LVM
85+
block:
86+
- name: Remove LV for OST
87+
lvol:
88+
lv: "ost"
89+
vg: "dac-{{ item }}"
90+
state: absent
91+
force: yes
92+
loop: "{{ osts.keys() }}"
93+
when:
94+
- mdts is defined
95+
96+
- name: Remove VG OST
97+
lvg:
98+
vg: "dac-{{ item }}"
99+
pvs: "/dev/{{ item }}"
100+
state: absent
101+
loop: "{{ osts.keys() }}"
102+
when:
103+
- osts is defined
104+
- mdts is not defined
105+
106+
- name: dmsetup remove lvm
107+
command: "dmsetup remove dac--{{ item }}-ost"
108+
register: command_result
109+
failed_when: "command_result.rc != 0 and ('device' not in command_result.stderr)"
110+
loop: "{{ mdts.keys() }}"
111+
tags: [ 'never', 'reformat_osts', 'format']
112+
113+
- name: Add VG
114+
lvg:
115+
vg: "dac-{{ item }}"
116+
pvs: "/dev/{{ item }}"
117+
state: present
61118
loop: "{{ osts.keys() }}"
62119
when:
63120
- osts is defined
64-
tags: [ 'never', 'reformat_mdts', 'format']
121+
tags: [ 'never', 'reformat_osts', 'format']
65122

66-
- name: Add OST Partition
67-
parted:
68-
device: "/dev/{{ item }}"
69-
number: 2
70-
part_start: "{{ mdt_size }}"
71-
part_end: "100%"
72-
label: gpt
73-
state: present
123+
- name: Add LV for OST
124+
lvol:
125+
lv: "ost"
126+
vg: "dac-{{ item }}"
127+
size: +100%FREE
128+
state: present
74129
loop: "{{ osts.keys() }}"
75130
when:
76131
- osts is defined
77-
tags: [ 'never', 'reformat_mdts', 'format']
132+
tags: [ 'never', 'reformat_osts', 'format']
78133

79134
- name: Reformat OSTs
80-
command: "/usr/sbin/mkfs.lustre --ost --reformat --fsname={{ fs_name }} --index={{ item.value }} --mgsnode={{ mgsnode }}{{ lnet_suffix }} /dev/{{ item.key }}p2"
135+
command: "/usr/sbin/mkfs.lustre --ost --reformat --fsname={{ fs_name }} --index={{ item.value }} --mgsnode={{ mgsnode }}{{ lnet_suffix }} /dev/mapper/dac--{{ item.key }}-ost"
81136
loop: "{{ osts|dict2items }}"
82137
when:
83138
- osts is defined

fs-ansible/roles/lustre/tasks/mount.yaml

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,19 @@
4444
with_items: "{{ mdts.keys() }}"
4545

4646
- name: mount MDTs
47-
command: mount -t lustre /dev/{{ item }}p1 /lustre/{{ fs_name }}/MDT/{{ item }}
47+
command: mount -t lustre /dev/mapper/dac--{{ item }}-mdt /lustre/{{ fs_name }}/MDT/{{ item }}
4848
register: command_result
4949
failed_when: "command_result.rc != 0 and ('is already mounted' not in command_result.stderr)"
5050
changed_when: "command_result.rc == 0"
5151
with_items: "{{ mdts.keys() }}"
5252

53+
- name: Enable DNE2 remote dir
54+
command: "lctl set_param mdt.*.enable_remote_dir=1"
55+
register: command_result
56+
failed_when: "command_result.rc != 0 and ('lctl' not in command_result.stderr)"
57+
58+
- name: Enable DNE2 all users
59+
command: "lctl set_param mdt.*.enable_remote_dir_gid=-1"
5360
when:
5461
- mdts is defined
5562
tags: [ 'never', 'start_mdts', 'create_mdt']
@@ -65,7 +72,7 @@
6572
with_items: "{{ osts.keys() }}"
6673

6774
- name: mount OSTs
68-
command: mount -t lustre /dev/{{ item }}p2 /lustre/{{ fs_name }}/OST/{{ item }}
75+
command: mount -t lustre /dev/mapper/dac--{{ item }}-ost /lustre/{{ fs_name }}/OST/{{ item }}
6976
register: command_result
7077
failed_when: "command_result.rc != 0 and ('is already mounted' not in command_result.stderr)"
7178
changed_when: "command_result.rc == 0"

internal/pkg/pfsprovider/ansible/ansible.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ func getInventory(fsType FSType, volume registry.Volume, brickAllocations []regi
8484
"mgsnode": mgsnode,
8585
"client_port": fmt.Sprintf("%d", volume.ClientPort),
8686
"lnet_suffix": getLnetSuffix(),
87-
"mdt_size": fmt.Sprintf("%dGB", getMdtSize()),
87+
"mdt_size": fmt.Sprintf("%dg", getMdtSize()),
8888
},
8989
Hosts: hosts,
9090
}

internal/pkg/pfsprovider/ansible/ansible_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ func TestPlugin_GetInventory(t *testing.T) {
3939
vars:
4040
abcdefgh_client_port: "10002"
4141
lnet_suffix: ""
42-
abcdefgh_mdt_size: 20GB
42+
abcdefgh_mdt_size: 20g
4343
abcdefgh_mgsnode: dac1
4444
`
4545
assert.Equal(t, expected, result)
@@ -66,7 +66,7 @@ func TestPlugin_GetInventory_withNoOstOnOneHost(t *testing.T) {
6666
vars:
6767
abcdefgh_client_port: "10002"
6868
lnet_suffix: ""
69-
abcdefgh_mdt_size: 20GB
69+
abcdefgh_mdt_size: 20g
7070
abcdefgh_mgsnode: dac1
7171
`
7272
assert.Equal(t, expected, result)
@@ -205,7 +205,7 @@ func TestPlugin_GetInventory_MaxMDT(t *testing.T) {
205205
vars:
206206
abcdefgh_client_port: "10002"
207207
lnet_suffix: ""
208-
abcdefgh_mdt_size: 20GB
208+
abcdefgh_mdt_size: 20g
209209
abcdefgh_mgsnode: dac1
210210
`
211211
assert.Equal(t, expected, result)

0 commit comments

Comments
 (0)