[blivet][rhel7-branch] Make sure to add hyperPAV aliases to dasd.conf (#1031589)

Samantha N. Bueno sbueno+anaconda at redhat.com
Mon Jun 15 17:19:02 UTC 2015


On Mon, Jun 15, 2015 at 09:27:45AM -0700, Brian C. Lane wrote:
> On Thu, Jun 11, 2015 at 12:06:12PM -0400, Samantha N. Bueno wrote:
> > HyperPAV aliases enable improved I/O efficiency by allowing parallel
> > access to a real DASD through a base subchannel (device) and multiple
> > aliases.
> > 
> > Unfortunately, while the kernel recognizes such devices, they don't
> > seem to generate any actual udev events so that blivet picks them up;
> > nor do these aliases have a device node. Thus, if they are used at all
> > during installation, they are not brought online after rebooting, since
> > they are on the device ignore list. They are not removed from the device
> > ignore list since there is no entry in dasd.conf, so this patch loops
> > through all DASD devices in sysfs and adds all detected aliases to dasd.conf.
> > 
> > Resolves: rhbz#1031589
> > ---
> >  blivet/devicelibs/dasd.py | 15 +++++++++++++++
> >  1 file changed, 15 insertions(+)
> > 
> > diff --git a/blivet/devicelibs/dasd.py b/blivet/devicelibs/dasd.py
> > index 73284e8..cf00b55 100644
> > --- a/blivet/devicelibs/dasd.py
> > +++ b/blivet/devicelibs/dasd.py
> > @@ -184,3 +184,18 @@ def write_dasd_conf(disks, root):
> >          for dasd in sorted(disks, key=lambda d: d.name):
> >              fields = [dasd.busid] + dasd.getOpts()
> >              f.write("%s\n" % " ".join(fields),)
> > +
> > +    # check for hyper PAV aliases; they need to get added to dasd.conf as well
> > +    sysfs = "/sys/bus/ccw/drivers/dasd-eckd"
> > +    # this does catch every DASD, even non-aliases, but we're only going to be
> > +    # checking for a very specific flag, so there won't be any duplicate entries
> > +    # in dasd.conf
> > +    devs = [d for d in os.listdir(sysfs) if d.startswith("0.0")]
> > +    with open(os.path.realpath(root + "/etc/dasd.conf"), "a") as f:
> > +        for d in devs:
> > +            aliasfile = "%s/%s/alias" % (sysfs, d)
> 
> Is it safe to assume the alias file will always be present?

For a DASD, yes.
 
> > +            with open(aliasfile, "r") as falias:
> > +                alias = falias.read().strip()
> 
> What's in alias? Maybe a comment about the conditions that need to be
> met would be good here (eg. alias present and contains anything).

It's either a 0 or a 1, depending on whether or not it is an alias (1).
But yeah, I'll definitely add a comment.
 
> > +
> > +            if alias:
> > +                f.write("%s\n" % d)
> > -- 
> > 1.9.3
> > 
> > _______________________________________________
> > anaconda-patches mailing list
> > anaconda-patches at lists.fedorahosted.org
> > https://lists.fedorahosted.org/mailman/listinfo/anaconda-patches
> 
> -- 
> Brian C. Lane | Anaconda Team | IRC: bcl #anaconda | Port Orchard, WA (PST8PDT)
> _______________________________________________
> anaconda-patches mailing list
> anaconda-patches at lists.fedorahosted.org
> https://lists.fedorahosted.org/mailman/listinfo/anaconda-patches


More information about the anaconda-patches mailing list