[LU-13340] add LCFG_ADD_UUIDv6 and related commands Created: 07/Mar/20 Updated: 07/Jan/24 Resolved: 09/Jul/23 |
|
| Status: | Resolved |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | Lustre 2.16.0 |
| Type: | Improvement | Priority: | Minor |
| Reporter: | Andreas Dilger | Assignee: | James A Simmons |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | IPv6 | ||
| Issue Links: |
|
||||||||||||||||||||
| Rank (Obsolete): | 9223372036854775807 | ||||||||||||||||||||
| Description |
|
In order to configure IPv6 interfaces for Lustre, there needs to be new LCFG_ADD_UUIDv6, LCFG_DEL_UUIDv6, and possibly LCFG_ADD_CONNv6 and LCFG_DEL_CONNv6 configuration log records added to the system. Even with LU-10359 and LU-10360, mount.lustre will pass down an IPv6 address NID (in ASCII format) resolved in userspace to the kernel via the "mgsnode=<nid>[:<nid>]" mount option, and generate a synthetic configuration record(s) in lustre_start_mgc->do_node(LCFG_ADD_UUID) to establish the initial MGC connection. Later on, whether the config logs have LCFG_ADD_UUIDv6 records, or the target NIDs are passed via Imperative Recovery Target Status Table, the same do_node(LCFG_ADD_UUID) command will generate a configuration record to configure the interfaces. Rather than storing the IPv6 NIDs in the lcfg_nid field, since this is tied to the on-disk format of the lustre_cfg records and needs to be declared as an lnet_nid4_t, the LCFG_ADD_UUIDv6 record should store the NID in ASCII format in lcfg_buflens[1] and use libcfs_str2nid() in the kernel to convert it to a binary lnet_nid_t (presumably lnet_nid6_t at this point) to pass down to class_add_uuid(). The class_add_uuid() function should be changed to take lnet_nid_t as an argument (as should anywhere else that is currently using __u64 for storing a NID). |
| Comments |
| Comment by Gerrit Updater [ 22/Apr/23 ] |
|
"Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/c/fs/lustre-release/+/50093/ |
| Comment by Gerrit Updater [ 22/Apr/23 ] |
|
"Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/c/fs/lustre-release/+/50094/ |
| Comment by James A Simmons [ 22/Apr/23 ] |
|
More patches coming
|
| Comment by James A Simmons [ 06/Jul/23 ] |
|
After patch https://review.whamcloud.com/#/c/fs/lustre-release/+/50096 lands we still need to deal with the UUID overflow issue: LustreError: 3289918:0:(ldlm_lib.c:385:client_obd_setup()) target UUID must be less than 38 characters |
| Comment by Andreas Dilger [ 06/Jul/23 ] |
|
james, do we ever extract the NID out of the device name/UUID, or is this just for identification? I suspect we would be OK to truncate this part of the NID, since other parts of the NID will be enough to identify it, and it is unlikely that many MGSes will be used by a single client (at most one per unique filesystem). |
| Comment by Gerrit Updater [ 08/Jul/23 ] |
|
"Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/c/fs/lustre-release/+/50096/ |
| Comment by Peter Jones [ 09/Jul/23 ] |
|
Landed for 2.16 |