Stateless Linux experience...
Jason Powers
powers.jason at jimmy.harvard.edu
Wed Nov 17 14:40:32 UTC 2004
If you don't have GQ, slap the phpldapadmin application on your
computer. Since you have to run apache anyway, there's no harm in being
able to see the ldap's internals while you work.
Jason
Mike Herrick wrote:
>> No html mail thanks.
>
>
> Sorry 'bout that.
>
>
>>>6) Because of the RAM problem above, I'm not sure that subsequent
>>>invocations of "stateless-snapshooter -n -p DemoSystem" actually
>>>worked as designed. When I execute "stateless-snapshooter -l", I get:
>>>
>>>Protosystems:
>>> DemoSystem
>>>
>>>But it doesn't say anything about snapshots. This makes me nervous.
>>>What should the output look like?
>>
>> Yeah, looks like there aren't any snapshots listed in LDAP.
>>
>> Are there snapshots in /srv/stateless/snapshots?
>>
>> Maybe use GQ (GUI LDAP client) to poke around in LDAP to see if any
>>record of the snapshots are being made?
>
>
> Part of the problem may be that I hadn't run 'stateless-servers -a'. Do I
> have to run this before or after taking a snapshot? What values do I give
> for nfs_path and rsync_path?
>
> I don't have GQ, but here's the output of ldapsearch:
>
> [root at localhost tmp]# ldapsearch -x -b 'dc=stateless-test,dc=example,dc=com'
> '(objectclass=*)'
> # extended LDIF
> #
> # LDAPv3
> # base <dc=stateless-test,dc=example,dc=com> with scope sub
> # filter: (objectclass=*)
> # requesting: ALL
> #
>
> # stateless-test.example.com
> dn: dc=stateless-test,dc=example,dc=com
> dc: stateless-test
> objectClass: domain
>
> # people, stateless-test.example.com
> dn: ou=people,dc=stateless-test,dc=example,dc=com
> objectClass: organizationalUnit
> ou: people
>
> # groups, stateless-test.example.com
> dn: ou=groups,dc=stateless-test,dc=example,dc=com
> objectClass: organizationalUnit
> ou: groups
>
> # services, stateless-test.example.com
> dn: ou=services,dc=stateless-test,dc=example,dc=com
> objectClass: organizationalUnit
> ou: services
>
> # stateless, services, stateless-test.example.com
> dn: dc=stateless,ou=services,dc=stateless-test,dc=example,dc=com
> objectClass: statelessContainer
> dc: stateless
>
> # hosts, stateless, services, stateless-test.example.com
> dn: dc=hosts,dc=stateless,ou=services,dc=stateless-test,dc=example,dc=com
> objectClass: statelessContainer
> dc: hosts
>
> # servers, stateless, services, stateless-test.example.com
> dn: dc=servers,dc=stateless,ou=services,dc=stateless-test,dc=example,dc=com
> objectClass: statelessContainer
> dc: servers
>
> # demo-group, groups, stateless-test.example.com
> dn: cn=demo-group,ou=groups,dc=stateless-test,dc=example,dc=com
> objectClass: posixGroup
> cn: demo-group
> gidNumber: 1000
> memberUid: group-name
>
> # demo-user, people, stateless-test.example.com
> dn: uid=demo-user,ou=people,dc=stateless-test,dc=example,dc=com
> objectClass: inetOrgPerson
> objectClass: posixAccount
> objectClass: shadowAccount
> uid: demo-user
> uidNumber: 1000
> gidNumber: 1000
> cn: Demo User
> sn: Demo User
> homeDirectory: /home/users/demo-user
> loginShell: /bin/bash
> userPassword:: e1NTSEF9QVRNVUNxTnNod0g2enE1OTlHWnFOc3FpSzd5UnJSb1c=
>
> # DemoSystem, stateless, services, stateless-test.example.com
> dn:
> statelessConfigurationName=DemoSystem,dc=stateless,ou=services,dc=stateles
> s-test,dc=example,dc=com
> objectClass: statelessConfiguration
> statelessConfigurationName: DemoSystem
> statelessDefaultSnapshotName: DemoSystem-3
>
> # DemoSystem-1, DemoSystem, stateless, services, stateless-test.example.com
> dn:
> statelessSnapshotName=DemoSystem-1,statelessConfigurationName=DemoSystem,d
> c=stateless,ou=services,dc=stateless-test,dc=example,dc=com
> statelessSnapshotName: DemoSystem-1
> objectClass: statelessSnapshot
> statelessSnapshotServer: 6.6.6.1
>
> # 00:02:b3:41:29:43, hosts, stateless, services, stateless-test.example.com
> dn:
> macAddress=00:02:b3:41:29:43,dc=hosts,dc=stateless,ou=services,dc=stateles
> s-test,dc=example,dc=com
> objectClass: statelessClient
> macAddress: 00:02:b3:41:29:43
> statelessConfigurationName: DemoSystem
>
> # status, 00:02:b3:41:29:43, hosts, stateless, services,
> stateless-test.coren
> te.com
> dn:
> dc=status,macAddress=00:02:b3:41:29:43,dc=hosts,dc=stateless,ou=services,d
> c=stateless-test,dc=example,dc=com
> objectClass: statelessClientStatus
> dc: status
>
> # DemoSystem-2, DemoSystem, stateless, services, stateless-test.example.com
> dn:
> statelessSnapshotName=DemoSystem-2,statelessConfigurationName=DemoSystem,d
> c=stateless,ou=services,dc=stateless-test,dc=example,dc=com
> statelessSnapshotName: DemoSystem-2
> objectClass: statelessSnapshot
> statelessSnapshotServer: 6.6.6.1
>
> # DemoSystem, servers, stateless, services, stateless-test.example.com
> dn:
> cn=DemoSystem,dc=servers,dc=stateless,ou=services,dc=stateless-test,dc=cor
> ente,dc=com
> objectClass: statelessServer
> cn: DemoSystem
>
> # --nfs-path, servers, stateless, services, stateless-test.example.com
> dn:
> cn=--nfs-path,dc=servers,dc=stateless,ou=services,dc=stateless-test,dc=cor
> ente,dc=com
> objectClass: statelessServer
> cn: --nfs-path
>
> # /srv/stateless/protosystems/DemoSystem, servers, stateless, services,
> state
> less-test.example.com
> dn:
> cn=/srv/stateless/protosystems/DemoSystem,dc=servers,dc=stateless,ou=servi
> ces,dc=stateless-test,dc=example,dc=com
> objectClass: statelessServer
> cn: /srv/stateless/protosystems/DemoSystem
>
> # DemoSystem-3, DemoSystem, stateless, services, stateless-test.example.com
> dn:
> statelessSnapshotName=DemoSystem-3,statelessConfigurationName=DemoSystem,d
> c=stateless,ou=services,dc=stateless-test,dc=example,dc=com
> statelessSnapshotName: DemoSystem-3
> objectClass: statelessSnapshot
> statelessSnapshotServer: 6.6.6.1
>
> # search result
> search: 2
> result: 0 Success
>
> # numResponses: 19
> # numEntries: 18
> [root at localhost tmp]# df
> Filesystem 1K-blocks Used Available Use% Mounted on
> /dev/mapper/VolGroup00-LogVol00
> 10095152 5916920 3665416 62% /
> /dev/hda1 101086 8947 86920 10% /boot
> none 127684 0 127684 0% /dev/shm
> /dev/mapper/VGStateless-DemoSystem
> 4128448 3357000 561736 86%
> /srv/stateless/protosystems/DemoSystem
> /dev/mapper/VGStateless-DemoSystem_1
> 4128448 3338300 580436 86%
> /srv/stateless/snapshots/DemoSystem/DemoSystem-1
> /dev/mapper/VGStateless-DemoSystem_3
> 4128448 3338300 580436 86%
> /srv/stateless/snapshots/DemoSystem/DemoSystem-3
> [root at localhost tmp]# stateless-snapshooter --list
> Protosystems:
> DemoSystem
>
>
>>>With these changes, I was able to get a machine to boot from the
>>>snapshot, but there were many errors/warnings stemming from having a
>>>read-only root (and /var) filesystem on a diskless client.
>>>
>>>When I finally got the machine to boot, it wouldn't let me login! I
>>>suspect some read-only root problem during the login process that
>>>prevented the login process from completing.
>>
>> Its possible the snapshot process never completed, and so that
>>snapshot
>>wasn't properly prepared for readonly booting.
>
>
> The readonly-root package was installed in the protosystem, and I verified
> that /etc/rc.readonly exists in both the protosystem and the snapshot.
>
> Mike.
>
>
More information about the devel
mailing list