

Re: RFC: configuration file for storing persistent FCoE information

On 06/08/2009 06:46 PM, Bill Nottingham wrote:
That is useful, there is one problem with this though, it is a regular
initscript, which means filesystems on fcoe devices cannot be mounted
from rc.sysinit. We can work around this by marking them as _netdev
in their fstab options (otherwise rc.sysinit will drop the system
to a rescue shell when it cannot find them).

There are however issues with marking them as _netdev:
1) This is technically not correct IMHO, FCoE is just a normal external
    "disk", which happens to be plugged in in ethernet port instead of
    a usb stick, but it has nothing to do with the network
    (fibrechannel != network), see below as to why this matters

Well, it requires the link at least to be up, which we don't do until

And which we could easily do for the interface in question from rc.sysinit.

2) If we do mark them as _netdev, they will not get mounted until the
    "network" is up and running, which in our default setup using
    NetworkManager, means that they will not get mounted until
    NetworkManager has brought up an interface associated with the default
    route. So if the dhcp server is down, we will not mount our FCoE
    filesystems even if they are fine.

Right, but it's sort of weird to have local net filesystems and yet
be unable to have an address assigned to you - I'm not sure that's
the sort of case we need to optimize for.

This is not a net filesystem, this is simple an external disk, just like
a disk in an usb enclosure. The fact that it uses a network plug does not
make it a network device. Anyways I'll write this down as a vote for
just mark them as _netdev (a solution I'm fine with by the way).

The alternative would be to add a /etc/rc.d/rc.sysinit.d dir, and the ability
to rc.sysinit to run scripts dropped in there before the fsck and mounting
of fs. Bill, so how much do you hate this idea ?

It's been discussed before; the big issue is that there's not a
good universal place to order it within rc.sysinit that makes sense.



