For whatever reason, I decided to obtain the domain jaredbellows.com and have moved this blog to that location. Further addtions will be available there. Thanks to all my loyal readers
.
New Location
February 13, 2007 by JaredAsterisk PBX, Parked Calls and Cell Phones
December 19, 2006 by JaredI’ve been a bit of an Asterisk enthusiast for a while now. There are a number of great things that can be done with it and many free services to do this with. One thing that I haven’t seen yet is using the Parked Calls feature of Asterisk to make it possible to move a call from your home phone (which is connected to an Asterisk PBX) to your cell phone.
IPKall offers a free phone number in Washington state which is forwarded to any SIP address. If one were to setup an extension on their Asterisk PBX for the IPKall number to ring to which then authenticates the caller. After authentication, the user can then pick up a parked call. So, the scenario.
You are talking to someone at home. You need to run to the store for some hot chocolate (it is cold now after all
), but want to continue your conversation. Simply park the call on your Asterisk PBX. Get your cell phone and call your IPKall number. Enter your authentication and pick up the parked call. Presto! You are now on the go without having to disconnect. If you really don’t want to waste much time between, you can even begin calling from your cell phone before you park the call and wait to the last second to park the call.
This isn’t something I could see as just useful for home users but also perhaps for a business where employees are often on the run.
Philips DVP5960/37
October 29, 2006 by JaredAs an early Christmas present, my wife got me the a Philips DVP5960 DVD/DivX player. This player also has a USB port on the front allowing for USB mass storage devices to be attached allowing for playing of music, displaying of pictures and also for playing of DivX movies.
From my experience of a week, I’m quite impressed. The player is DivX Ultra certified which means it can use the new DivX container allowing for menus, alternate audio streams and subtitles. Through the disc it has played my video selections without problem and with great quality. Playing movies from USB was not quite as successful. The player’s USB port is USB 1.1 which is considerably slower than USB 2.0. This poses a problem for areas of video with maxed out bitrates.
But all is not lost. I took my videos and reencoded them changing the maximum bitrate allowed from 4700 kbps to 3900 kbps (higher than 3900 may be possible). This was done by going into the Advanced portion of the DivX encoder and changing the Manual CLI. The portion changed was right after -vbv. I changed it from 4854000 to 4000000 resulting in that portion of the command being -vbv 4000000,3145728,2359296. Playing videos which previously stuttered during certain scenes with this new encoding has worked, for me at least.
Older Systems with Large Hard Drives
September 18, 2006 by JaredI have a few older systems (think original Pentium) which I have around. They had small hard drives which make them difficult to do much with these days, but I had larger hard drives around which I wanted to use. The problem was that the BIOS on each of the systems are only able to recognize drives of 8GB or less correctly. This is when Grub and Linux came to the rescue.
Linux has no problem accessing the drive directly and thereby recognizing it correctly. All I had to do was get the system to boot and Linux would take care of the rest. This is where Grub comes in. Installing Grub on the hard drive doesn’t work since the BIOS doesn’t know how to access the hard drive correctly. So I was left with the option of installing Grub on a floppy. My initial install had the menu.lst file also on the floppy which caused problems when updating kernels. It also meant that the /boot/grub directory wasn’t actually where the menu.lst file being used was. This annoyed me so I went in search of a better solution.
That’s when I found my solution. I install stage 1 on the floppy but point it to the partion containing my /boot so that all information for the boot is where it should be, but I’m still able to boot my system. The way I did this was to insert a floppy disk in the drive. From the command line type “grub”. Then I set the root device for Grub with “root (hd0,0)” or whatever device your /boot is on. Then I type ”setup (fd0)”. This has worked great for me. I just leave the floppy in the drive and the system boots normal like.
SUCCESS!~
May 31, 2006 by JaredI have just had my first successful boot of a root filesystem completely contained in RAM using unionfs and squashfs. I used PXELinux to boot the second system. The second system downloaded the kernel and the initrd. The boot sequence began and the initrd downloaded the squashfs root filesystem and placed it on a ram disk. The initrd mounted the squashfs, then mounted a tmpfs which would act as the read/write portion of the unionfs. The squashfs and tmps were mounted into the unionfs. The initrd then called pivot_root to change to the unionfs as the root and began the init sequence of the squashfs.
The only downside was that it took about 3 1/2 minutes for the 95MB squashfs to download, but I think this was because the test was run under two virtual machines and networking for VMs is not always the best. With this complete I can now work on getting it setup to be a webserver and get the LVS setup working.
P.S. I think I might also create a Ubuntu Live CD that will load the filesystem into memory and run from there. Should result in a much quicker operating system.
RootFS Progression
May 30, 2006 by JaredI feel quite sheepish. In the previous post I described a problem of the Ubuntu 5.10 kernel booting the initrd, but the 6.06 kernel not booting it. Well after a break of a couple of days from the problem, I found the answer in under 10 minutes. the 5.10 kernel has ext2 support built into the kernel whereas the 6.06 has it built as a module. A recompile of the kernel with ext2 support built in allowed the system to boot.
After talking with my friend Andrew, I decided to look into booting a more or less standard initrd that downloaded the real rootfs and mounted that. This is when I came across squashfs. Squashfs creates a compressed readonly filesystem which is fast and compact. In conjunction with unionfs, it is possible to use squashfs as the rootfs by creating a ram disk for the purpose of storing the changes that will happen on the read only squashfs. This will provide for a smaller memory footprint allowing for less memory requirements and/or more available applications.
As a sidenote, I've done a lot of reading and searching on the Internet about diskless nodes in cluster settings, and it seems that most if not all have a dependence on a file server for the node operation. While the overall design of the web cluster called for an external storage solution, which would hold the actual website content, it would be possible to place the website within the squashfs image, thereby removing the dependence on an outside source for operation.
RAM Disk RootFS
May 25, 2006 by JaredIn my previous post I discussed my plans of designing an easily scaled cluster. So far I've created an initrd of Ubuntu 6.06 running lighttpd and php5. The uncompressed size of the initrd is about 200MB. I've been able to load and run a system with this initrd, but have only had success with the stock 5.10 kernel. The 6.06 kernel panics with not being able to mount the rootfs.
LVS and Load Balancing
May 19, 2006 by JaredTonight I attended a meeting of the BYU UUG about LVS. The focus of this presentation given by Lloyd Brown was an introduction to LVS and it's potential. The environment in which Lloyd uses LVS is quite simple and basic, but effective. His purpose was to balance the load of SSH across multiple computers with one entry point, but not concerned with high availability. LVS has one weakness (on its own). The setup calls for one director and only one director. That means that if the director goes down, it all goes down. But thanks to Linux-High Availability it is possible to set LVS up in such a way that if the main director went down, a backup can take over on the fly.
With that in mind, I was thinking of expanding on that idea. What if one used LVS-NAT for the configuration and setup the nodes (real servers) to get their configuration and filesystem via PXE? I know it is possible to boot Linux in such a way, but admittedly haven't done it before. The reason I'd want to have it PXE boot is because it would then be a simple matter to keep say a website up-to-date on all the nodes, and it is very simple to expand the cluster by simply getting a box and adding booting it. Using the heartbeat method of high availability, one would have a cluster that is highly scalable, easily scalable, and highly available.
When dealing with a handful of nodes this would most likely be overkill, but if one was dealing with 15-??? nodes, this would almost be necessary. My first step will be to PXE boot Linux by mounting the filesystem via NFS. Then I'll setup LVS for a simple website. Finally, I'll setup the heartbeat for high availability
First Entry
May 16, 2006 by JaredSo here begins my blogging experience. I've been thinking of setting up a blog to "publish" the number of little projects I do from time to time. My projects involve varying things, from VoIP experiments to circuit design and sometimes they intermingle.
Hope that over time, interesting bits of information can be taken from what is posted.