Texu: Community exchange

I’m an active member of Rastru Community Exchange which now is migrating their exchange platform to ICES.

This is the idea I want to implement.

  • Apache web servers for the front end using  the mod_proxy_balancer
  • The application servers will be accessed throw a Apache web server acting as a proxy.  The application servers will be implemented using Python flask as a REST inteface for linking the data layer and the presentation layer.
  • The data layer will implemented using Apache Cassandra running on LXC on small computers

The architecture overview can be seen on the following image:

Distributed Architecture

 Until now this project is an idea, but i think it can be very interesting so as pedagogic.

Texu framework: Online distributed file storage

Texu is a simply idea that was born as my final project on the university. The idea is to create cloud services using low resource machines (sheevaplugs, raspberry pi) using linux containers, in a VPN fashion. I mean, instead of using third-party service, use your own one.

 worldmap_overlay_nets

The main idea is to create a private overlay network using the TCP/IP protocol as communication mechanism, as its shown on the previous picture.

arquitecturaDetalle

The previous picture is the laboratory environment created for testing purposes. Each container should be a node of the cloud application in this case was an online distributed file storage (ODFSt) application that used a Apache Cassandra as a data storage.

What is texu?

The prove of concept of Texu was the creation of an online distributed file storage (ODFSt) application that used a Apache Cassandra as a data storage.

Taking the advantage that im the proud owner of a few SoCs (one Sheevaplug and on Raspberry Pi) and an old PC, this seems that it’s a great opportunity to:

  • Test the idea.
  • Go green.
  • improve knowledge and skills.

 

Flashing a sheevaplug on 64 bit system

Im the proud owner of a Sheevaplug since 2010 or so.

And after a unsuccessfully system upgrade i decided to flash it following the tutorial available on archlinuxarm.org the tutorial is clear and simple and what is more important works fine. But this procedure does not work on 64bits host architecture

Searching over the net i found the flowing post wich save my life. It worked for me but don’t blame me if it does not work for you. Also notice that it will erase completely your sheevaplug

In fat32 usb disk copy the files uImage, modules.tar.gz, rootfs.tar.gz available on archlinuxarm.org on the root of the usbdisk

  1. In fat32 usb disk copy the files uImage, modules.tar.gz, rootfs.tar.gz available on archlinuxarm.org on the root of the usbdisk
  2. Access via serial to the sheevaplug cu -l /dev/ttyUSB0 -s 115200
  3. Reboot it, and access the Uboot prompt
  4. Copy each command at Uboot prompt:
    1. setenv mtdpartitions 'mtdparts=orion_nand:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs)'
    2. setenv bootroot_nand 'ubi.mtd=1 root=ubi0:rootfs rootfstype=ubifs'
    3. setenv bootload_nand 'nand read.e 0x00800000 0x00100000 0x00400000
    4. setenv nand_boot 'setenv bootargs $(bootargs_console) $(mtdpartitions) $(bootroot_nand); run bootload_nand; bootm 0x00800000'
    5. setenv recover_ramdisk 'root=/dev/ram0 rw ramdisk=0x01100000,8M install_type=nand'
    6. setenv recover1 'setenv mainlineLinux yes; setenv arcNumber 2097; setenv bootcmd run recover2; saveenv; reset'
    7. setenv recover2 'run recover3; setenv bootcmd run nand_boot; saveenv; run recover5'
    8. setenv recover3 'run recover4; nand erase clean 0x00100000 0x00400000; nand write.e 0x00800000 0x00100000 0x00400000'
    9. setenv recover4 'usb start; fatload usb 0:1 0x00800000 uImage; fatload usb 0:1 0x01100000 initrd'
    10. setenv recover5 'setenv bootargs $(bootargs_console) $(mtdpartitions) $(recover_ramdisk); bootm 0x00800000 0x01100000'
    11. setenv bootcmd 'run recover1'
    12. saveenv
    13. reset
  5. If everything goes right you have already flashed your sheevaplug

Problems that i found:

  1. I found a problem with kernel files that does not seem to have the same arcNumber that the one wich is used on this tutorial. Don’t panic and change setenv arcNumber XXX with the architecture number from the that is printed as error message