Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ethernet VLAN's or Infiniband partitions not supported #166

Open
jabl opened this issue Dec 5, 2018 · 5 comments
Open

Ethernet VLAN's or Infiniband partitions not supported #166

jabl opened this issue Dec 5, 2018 · 5 comments
Milestone

Comments

@jabl
Copy link
Contributor

jabl commented Dec 5, 2018

Trying to configure a device for for an IB partition fails with

# wwsh node set n0 --netdev=ib0.80a1 --ipaddr=10.1.0.1                                                                                                                  
ERROR:  Option 'netdev' has invalid characters

The same error occurs if I try to setup a device for an eth VLAN, which are named similarly (e.g. 'eno1.100' for VLAN 100 on the device eno1).

The problem seems to be that the regexp check in common/lib/Warewulf/Module/Cli/Node.pm is a bit too strict.

@bensallen
Copy link
Member

Warewulf's initrd also doesn't have a concept of VLANs/IB partitions, eg: https://github.com/warewulf/warewulf3/blob/development/provision/initramfs/init#L73

@bensallen bensallen added this to the 3.9 milestone Dec 5, 2018
@jabl
Copy link
Contributor Author

jabl commented Dec 5, 2018

Oh, right. Definitely not as easy to fix as just tweaking the regexp, it seems.

@bensallen
Copy link
Member

Does your use case include booting from a VLAN or IB partition device, or do you need to use it in a template to create a ifcfg-ib0.80a1 or similar?

@jabl
Copy link
Contributor Author

jabl commented Dec 5, 2018

For now at least, no need to boot from it. I just need to create the ifcfg files and bring up the interfaces at some point during boot, which would then allow me to mount Lustre.

(I could of course duct tape something together with a shell script launched from /etc/rc.local, but it would of course be nice if the 'obvious' thing would work)

jabl added a commit to jabl/ansible-role-lustre_client that referenced this issue Dec 8, 2018
Warewulf doesn't handle IB partitions (or Eth VLAN's), see
warewulf/warewulf3#166

Instead create a script to generate the ifcfg- files for the IB
partitions, bring them up, and mount Lustre.
@bensallen
Copy link
Member

bensallen commented Feb 5, 2019

A workaround for VLANs at least, assuming RHEL, is to use vlan<id> named interfaces with the PHYSDEV attribute specified in the ifcfg file.

Alternatively you can name your VLAN interfaces anything at all if you specify VID=<ID> via an ifcfg file like:

DEVICE=pub0
IPADDR="%{NETDEVS::PUB0::IPADDR}"
NETMASK="%{NETDEVS::PUB0::NETMASK}"
ONBOOT=yes
BOOTPROTO=none
VLAN=yes
VID=123
MTU=%{NETDEVS::PUB0::MTU}
PHYSDEV=eno1

Logic for parsing ifcfg scripts is found in /etc/sysconfig/network-scripts/ifup, around line 77 for VLAN configs, at least in RHEL 7.6.

Note, using Warewulf's file functionality the %{...} template will be replaced with whatever is configured for the host, eg. wwsh node set --netdev=pub0 ... in the above case.

I started looking at allowing the traditional eno1.<vlan_id> device names in Warewulf, but not booting from them. Fixing the regexs is easy enough, but there's some additional code around node name that assumes there's no periods as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants