[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