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