School Server, Moodle, Book Server
Notes from Kevin O'Brien firstname.lastname@example.org
 Presentation on: School Server, Moodle, Book Server
- Presented By: ( Sameer Verma, Tabitha Roder, Robert Howard, Ben Tran) - Topics: Testing the OLPC School Server Most people have heard of, 3 people using school server in deployment Look at school server, and examine project
Sameer Verma - Works in Business School @ SFSU, Information Systems.
Ben Tran - Computer Science Department, SFSU Student. Ben will talk about school server performance
Robert Howard - Part of OLPC SF, wants to run OLPC server on ARM processor
Anna Schoolfield - Birmingham Deployment - Use a school server
Tabitha Roder - Moodle partner
 Talk from Ben Tran
School server is a collection of things. Runs on Fedora 9. Moodle, postgreSQl, Squid for proxy, networking tools (for ethernet, usb, mesh antennas), backup, push to other XOs Martin Langhoff is the OLPC school server architect
The design is that all of the complexity of the server should be behind Moodle,and the teacher should only see the moodle screen, and not have to worry about sysadmin stuff (There are deployments that run their own Debian server without these extra plugins). So there is a overall concept of School server and then an actual implementation (XS)
XS runs on hardware with limited resources, highly optimized for performance.
Get estimated number of students in a school, what hardware combo is optimal for use with the XS with given # of students?
Ben writing process to test and measure performance needs.
Wrote a test plan for performing functional and load tests against a representative set of systems. This just scratches the surface of what can be done. Uses a large variety of tools, uses machines which mimic closely the actual machines that would be deployed on. Wrote Selenium scripts for doing the tests. Such as loading up thousands of users in a database, setting up a course, runs, and gets results then repeats for different machines.
Uses Selenium, Apache JMeter (http://jakarta.apache.org/jmeter/), nmon (http://nmon.sourceforge.net/). Chose Selenium (http://seleniumhq.org/) because of personal experience, JMeter because large community and lots of support, and nmon for verification/monitoring on the server side.
Servers to test, XS-on-XO1, FitPC, FitPC2, OLPCorps SolidLogic, Intel P4 3.06 GHZ/1GB RAM, Dell Xeon 2.8Ghz/4GB RAM
XS-on-XO1 = 5W
FitPC = 8W
FitPC2 = 15W
OLPCorps SolidLogic = 26W
OLPCorps SolidLogic runs better than the XSonXO1/FitPC/FitPC2.
 Test cases
1. Login 2. Access Course 3. Access Resource 4. Post to Forum 5. Upload Homework 6. Take quiz In school server you don't have a login, to simulate the normal XO process, skip login as part of test
Made up own course with sample resources (about 2MB). Created a sample homework with a regular .jpg (50kb) for users to upload and finally 'take quiz' is known to typically take a lot of resources and time. The hard part is how long is the window for test distribution. Wanted an idea of how long it takes to deploy, but didn't get an answer, so some of this is based on assumptions. Need info on how long does it actually take in a classroom to do one of these cases?
 Test results
These results are based on a 60 second ramp up time. Assume it takes 60 seconds for classroom users to open up their laptop and login. Uses Jmeter to spread out 25 - 275 ramping up threads over 60 seconds (also did for 120 seconds). Start seeing errors at around 250 users, about 7% at that level will get an http timeout.
Q. How do you define an error? A. Errors are reported automatically by JMeter
[Graphs of cpu utilization, free memory, and disk i/o (from nmon)]
Summary of test results for OLPCorp SolidLogic Box [chart of results] list of response times, whether or not these response times are acceptable is based on the user's tolerance that is doing the test. For this test case, 150 was handled well.
Assumption is if you have people hitting the server slowly over a spread amoun tof time, then see better performance, but the tests showed that changing the ramp up time was not necessarily linear change to results. InteresSing to flex those parameters. This is a baseline of 60 seconds. Increasing ramped up times, still saw errors after 150 users, so could be from a lot of variables. Changing one simple configuration on the school server may result in a totally different result (memory, cpu, software config)
Test results for XS-on-XO. Set up an external USB drive glued on to the back of the XO to try to improve performance. For this thing could we figure out if there was a difference with moving drive. Some issues with mount, swap, etc. Second try was move log partition onto the spinning drive as well and add swap partition, otherwise just running on the 256 MB of RAM on the XO. Third case will be with /swp, /var, /library. So the question is can you do 150 XO users from a XS-on-XO server. With the external drive, the response time moved down, but for quiz, the amount of users for Quiz Test went from only 125 to able to handle 150.
- Sameer: You will be able to find the scripts and data on the wiki. Use this and build on top of this to get real deployment data. Really want to know estimates on Ramp up time. So far have just used 1 minute for every experiment.
Q. What about wifi?
A. For wifi it will be different, cause the information may not be valid if doing it o wifi vs. on ethernet. Wifi will give you lower performance than the certain level of control provided by ethernet. Not doing performance testing, not tweaking database, etc. Just doing load testing. Performance testing is different, is where you actually tweak, what class of SD card to use, how many hard drives to use, etc.? This is only load testing.
 Talk by Robert Howard on porting to ARM Processer
A lot of deployments use old Intel boxes. Use many watts. ARM chips are the types of devices to power cell phones. Originally, for desktops then went to low power systems, in the early 90s. Low computational power and low wattage use. Have recently been coming back into the high perofrmance area. Kirkwood system on a chip runs 1.2GHz. Has OpenRD client, so wanted to port this device, but not all the facilities on the board had kernel drivers. About 2 weeks ago, got drivers for building the kernel on the board. Spent a while to get the boot loader to boot kernel from a hard drive (usually boots only from NAND memory). Looking at 2 month timeline on getting XS ported onto this device. Power spikes for hard drive 2.5 watts on boot. Device itself uses <5 watts on avg? About the same power consumption as the Sheevaplug, but with more features. On Sheevaplug, a complete kernel build takes 2 minutes.
New ARM SOC devices coming out are interesting, Marvell has a license that allows them to change the design at actual cell level, also neat tricks to make things faster. Newer ones use even less power and have more features.
Once this port is done, will do some load tests with Ben [but Sameer says it will stay out of his thesis so he can get it done :)]
Q. Do you like TI models? A. No, the problem with them is you can't change the boot loader. Ideally change bootloader to use open firmware.
Q. To Bruce, what are we looking at in terms of dollar investment? A. Bruce: To get 10 watts you need 10 times that on a solarpanel, so you need a 30 watt solar panel, 30 amp-hour battery, and a 8-amp charge controller, so about $600 investment. If it isn't running 24 hours/day then this need goes down significantly. (assumes 6 hours of sunlight) These should have a 30-year life. It is the battery that is the weak link. Sameeer: Thinking in project you would turn off at 9pm and wake up at 6am?
 Talk by Tabitha Roder on Moodle
Demo of Moodle. You need a box, need wifi. Laptops talking to each other create a lot of traffic. School servers help reduce this traffic. When you turn on the laptop, you will see the school server, person who sets it up should give it a name that will tell the kids to connect to the school server. Gives a backup/memory, so always brings up the information relevant to the student, journal gets backed up so if a kid loses their laptop, their work is not lost. Students automatically logged in.
The teachers can create courses. In those courses the students can access a resource that teachers make (something can watch/use). Also can make quizes that students can interact with. Create glossaries, databases, etc. that students can put information into.
[demo of school server moodle logged in]
Once school is comfortable they could ask students to create courses for other students. Front page settings, fill in school name, etc.
-- The first XO to connect gets administrative rights *Make sure teacher is first XO to connect and not one of the students - Can assign other teachers, create courses. Students will be able to access by default. Can turn off guest access. Collects serial name as e-mail address, name comes as what the name of the XO laptop is. -Antitheft controls XO will ask for a sync up file, gives a ceratin hour lease. Theoretically, the machine would cease to boot if it did not have the lease up to date. So workflow would be, so could report as stolen, the laptop would update its lease file, and then would not boot, discourage people from stealing cause couldn't sell something that doesn't work.
- Course management, add a new course. - Site files, files that are accessible to all courses, and also can have files per course, and can backup all of them and restore to other - Question bank, can make quizes for whole school server or course. - Could prebuild a system, make a collection and then deploy it wherever you want it. - There are repositories of premade courses - Can make complex question types, numerical with tolerances, matching, etc.
Q. Which deployments are using the Moodle system? Originally was going to use Madagascar. Deploying currently at both schools in Jamaica. Use current platforms deplyed at existing colleges like SF State to build courses, and then deploy them. Still considering for December deployment in India.
[show usage of Moodle]
Any kind of text you insert usually is called a label. Other functions add a resource: book, insert a label, compose a web page, etc. Add an activity, similar to XO type activities.
Sameer: Biggest challenge on our campus, implementing Moodle, too many features. So tried to simplify for XO distributions.
Really easy to change languages and other settings.
[demo of doing backup]
Q. So basically this is used for cloning courseware from one school to another? A. Yes, or even from one school server to another within the school. Use same course but edit it for age level. Import from previous semester, then modify it for current semester for something newer. Can use almost any browser, and could even access from home.
-Can see reports on activities, access, participation, etc.
 Talk from Anna from Birmingham deployment
Q to Anna: You guys are not using Moodle? A: That's a level of teacher training and support we're not currently prepared to deal with. So we just use regular Apache to host teacher provided content on the XS. An additional factor is that many children don't have XOs due to damage and they would be left out of the Moodle courses. Since there are school computers (Dells running XP) available for use, albeit on a separate network, a workaround is to allow port 80 access to the computers on the school IP address range in the httpd.conf on the XS.
We basically use the XS for Apache, Jabber, DHCP, and Squid. External access (for ssh and the aforementioned Apache setup) is made easier due to the DSL having a static IP. There are 10 XS's with connectivity out in the field right now. Each school only has one XS.
Q: Would having Moodle training be useful for getting teachers to use it? A: That's a good question, it would be worthwhile to try