[systemd-devel] Help: Local and Remote targets

Tony Rodriguez unixpro1970 at gmail.com
Wed Aug 21 00:04:04 UTC 2019


Understood but I don't have to worry about iscsi offloading for now.   
Some theories I have to attack the problem but each has a problem and 
may be complex.

1) Since I can obtain udev/disk information when the system is in a 
multi-user already booted stated.  Check for "iscsi" devices and 
filesystems then create a file on "/" that has the device id and specify 
it as an iscsi device.  When the system reboots then check for that 
file, if it exists set state to REMOTE-FS target within fstab-generator.c

Problem:  I will have to manage create/remove such files within systemd 
especially if contents within /etc/fstab are manually modified by the 
user.  Where would be the best place to put such logic within systemd 
source?

2) Boot the system mounting only "/" and "/usr" and defer 
fstab-generatoration until the system is booted.  Then find a way to 
manually re-start fstab-generation after iscsi/network are operational.  
After that restart systemd.

Problem: Unsure if this is reasonable. Wondering if doing so may 
introduce some kind of side effect issues regarding mounting and other 
services.

Note:
Really hoping for an easier way instead of trying to implement points 
(1) or (2)

Tony

On 8/20/19 3:33 PM, Rick Beldin wrote:
> This might be problematic.  What will you do with iscsi devices that support
> iscsi offload?  Those are typically completely invisible to the OS and just
> appear as another HBA.
>
> On 8/20/19 3:26 PM, Tony Rodriguez wrote:
>> I modified systemd-219 functionality to meet a custom requirement for
>> detecting filesystems/devices that use iscsi without using the _netdev keyword
>> in /etc/fstab.  It is a strict requirement regarding not using _netdev that I
>> have no control over.   However,  I am stuck.
>>
>>  From my understanding, src/fstab-generator.c is used to determine LOCAL-FS and
>> REMOTE-FS.  I have modified fstab-generator.c to search for iscsi udev devices
>> which works, provided the system is already fully booted (typical multi-user
>> state type of thing).  I can also find /dev/disk/ block devices including
>> iscsi devices using my logic within fstab-generator.c.  The problem is when
>> the system reboots, it appears systemd using the same fstab-generator logic
>> that I implemented is unable to detect any iscsi devices.  After doing some
>> research, it appears normal systemd behavior is to mount  /  and /usr then
>> invoke fstab-generator.c to determine if a given filesystem in /etc/fstab
>> should be a local or remote target.
>>
>> The problem is I have no way to tell if a given iscsi filesystem/device
>> specified in /etc/fstab (without the _netdev keyord ) is local/remote during
>> the booting state.  Mainly because devices are not yet populated in /dev/disk
>> or udev.  Is there a way I can determine if a filesystem/mount point/device
>> specified in /etc/fstab is local or remote without the _netdev or fstype
>> (which handles nfs, etc) keywords within fstab-generator.c? If checking udev
>> and /dev/disk are not possible within fstab-generator.c, because such devices
>> are not yet populated, then what should I modify within the systemd source so
>> I can determine such local/remote targets myself and pass it to
>> fstab-generator.c (especially when the system is in that / and /usr mounting
>> state and udev devices are not yet populated?
>>
>> Thanks,
>> Tony
>> _______________________________________________
>> systemd-devel mailing list
>> systemd-devel at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/systemd-devel
>>



More information about the systemd-devel mailing list