> I'm looking for an operating system that I can use to
> build some
> diskless workstations.
>
> I'd really like to be able to support swapping.
>
> Is it feasible to enable swap to any remote file or
> remote block device
> with (Open)Solaris- without
> risking a deadlock?
>
> Linux seems to be prone to deadlock. I believe
> historically Solaris
> could swap against NFS: can
> it also swap against iSCSI, and are the code paths
> using pre-reserved
> memory so that it won't
> deadlock?
AFAIK, one can swap to:
* any block device (raw partition, zfs zvol, lvm metadevice, probably
a VxVM volume as well)
* a file on a local UFS filesystem (should be created with mkfile)
* a file on an NFS mounted filesystem (should be created with mkfile)
One should probably _not_ create sparse {zvols, swap files}, since writes
to them could fail for lack of space.
iSCSI should present block devices, so it should work also.
Kernel crash dumps probably won't work to some of those block devices;
in particular, AFAIK they _won't_ work to VxVM volumes, and while
I think they could theoretically work to LVM metadevices, I've heard
things to the effect that it never actually worked for some people.
Don't know whether or not kernel crash dumps would work over iSCSI;
in principle I would think they should, but the code path is enough more
complicated that I don't know that I'd count on it.
I would think that there are usually lots of read-only pages in memory
that could simply be abandoned (to be re-fetched from whatever
executable or library they came from) if the kernel needed some RAM
for communication with remote swap, so I doubt deadlocking would be
an issue unless you were already pushing to the point that you were
getting malloc() and fork() failures (i.e. swap was pretty much filled
up anyway).
I would also think that the statelessness of NFS might make it more robust;
a server or network outage should simply result in the diskless clients
hanging until communication was restored; whereas I haven't looked into
how iSCSI initiators behave if they suddenly can't get a response from a
target that was previously working.
I know that the statelessness of NFS file and swap for a diskless workstation
worked ok as late as Solaris 8 (on the client); I'd reboot the server without
worrying about the client (nobody to inform since it was just me), and the
client would be fine (except for a bunch of "NFS server not responding"
messages) once the server came back up. I haven't tried since then because
the client was a SPARCstation Voyager (which officially only supported up
to Solaris 7, but 8 could be hacked to mostly work); Solaris 10 won't run
on 32-bit SPARC, so I never had occasion to try Solaris 10 diskless. But
googling a bit certainly suggests that it still works, although there might
sometimes be problems with Linux NFS servers, peculiarities of x86 client
setup (not so much the latter if one is attentive to the documentation), etc.
Now, I'm guessing on a bunch of this stuff; I haven't studied the code or
anything. But I don't think swapfiles on NFS should have suddenly stopped
working. As for swapping to iSCSI, while I'd expect it to work, I don't
think I'd be crazy about it simply since iSCSI on Solaris isn't as mature as
swapping over NFS; I'm not sure how robust it would be in the face of
not-tested-for-compatibility iSCSI targets, target or network failure, etc.
This message posted from opensolaris.org
_______________________________________________
networking-discuss mailing list
[email protected]