tag:blogger.com,1999:blog-73364627562721103562009-06-17T07:56:22.818-07:00Adminlinux.org (......)Dreaming Linux, Save Unix Save the World....bighandsbirdhttp://www.blogger.com/profile/10204317846080625082Bighandsbird@gmail.comBlogger94125tag:blogger.com,1999:blog-7336462756272110356.post-31384238844812446982009-06-13T06:15:00.000-07:002009-06-13T06:35:03.053-07:00How to install Flash Plug-in on Fedora 11 64 bit FirefoxI found this easy but tricky :)<br /><br />Download the flash plug- in<br /><br />wget http://download.macromedia.com/pub/labs/flashplayer10/libflashplayer-10.0.22.87.linux-x86_64.so.tar.gz<br /><br />Copy the plugin to the mozilla plug-ins directory<br /><br />cp /home/usr/libflashplayer.so /usr/lib64/mozilla/plugins/<br /><br />That's all !!<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7336462756272110356-3138423884481244698?l=www.adminlinux.org'/></div>bighandsbirdhttp://www.blogger.com/profile/10204317846080625082Bighandsbird@gmail.com0tag:blogger.com,1999:blog-7336462756272110356.post-62393953413426089822009-06-03T03:49:00.000-07:002009-06-03T04:19:15.055-07:00How to autofs NFS automountAutomount will mount a filesystem on demand, just by issuing an ls or a cd to a directory<br /><br /> An example to mount myserver:/oracle/test on /export/oracle in the local machine : <br /><br />1) Create the mount point, and define the file to use by autofs <br /> <br /> a) vi / etc / auto.master <br /> <br /> / export /etc/ auto.export <br /> <br /> ****We are defining the mount point, and the file that contains the mount information<br /><br /><br />2) We must now create the /etc/ auto.export file<br /> <br /> a) vi / etc / auto.export <br /> <br /> oracle soft, int, rw myserver: /oracle/ test <br /> <br /> 3) We must change the value of BROWSE_MODE in / etc / sysconfig / autofs to let mount the filesystem with a cd or ls. <br /> <br /> a) vi / etc / sysconfig / autofs <br /><br /> # BROWSE_MODE - maps are browsable by default. <br /> # <br /> BROWSE_MODE = "yes" <br /> <br /> 4) Start autofs <br /> <br /> a) /etc/init.d/ autofs start <br /> b) chkonfig autofs on <br /><br /> No you can mount myserver:/oracle/test on /export/oracle by jus cd in to the directory.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7336462756272110356-6239395341342608982?l=www.adminlinux.org'/></div>bighandsbirdhttp://www.blogger.com/profile/10204317846080625082Bighandsbird@gmail.com0tag:blogger.com,1999:blog-7336462756272110356.post-63973595633728031572009-06-01T05:54:00.000-07:002009-06-01T06:15:44.005-07:00How To disable pam Checking against Dictionary.<span style="font-weight: bold;">Creating Strong passwords</span><br /><br />The best password in the world does little good if you cannot remember it; use acronyms or other mnemonic devices to aid in memorizing passwords.<br />Here is how to create a simple way to create a good password :<br /><ul><li>Over eight characters </li><li>Combines letters, numbers and symbols </li><li>Easy for you to remember, but difficult for others to guess </li></ul><br /><h2><span style="font-size:100%;">Make all (or some) of the following substitutions</span></h2> <ul><li>For the word "are", use "r" </li><li>For the word "be", use "b" </li><li>For the word "for", use 4 </li><li>For the word "nothing", use 0 (zero) </li><li>For the word "to", use 2 </li><li>For the word "you" use "u" </li><li>For the word "we", use "v" </li><li>For any numbers, type the number </li><li>If permitted, use "&" for and, or "@" for at. </li></ul>Example.<br /><br /> "To be or not to be, that is the question" becomes : 2bOn2BtItQ<br /><br />Or<br /><br /> "lost is the best Series from 2009" becomes : LsdbSft2&9<br /><br /><br />A friend of mine asked how to disable password checking against dictionary words in Red Hat using pam here is little how to<br /><br /> Open the following file with your favorite editor /etc/pam.d/system-auth eg # vi /etc/pam.d/system-auth<br /><br /> 1) Comment out the line referencing to pam_cracklib<br /><br /> # password optional pam_cracklib.so try_first_pass retry=3<br /><br /> 2) Remove "use_authtok" from the line following line.<br /> <br /> # password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow<br /><br />This will disable Dictionary password checking when creating or changing passwords.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7336462756272110356-6397359563372803157?l=www.adminlinux.org'/></div>bighandsbirdhttp://www.blogger.com/profile/10204317846080625082Bighandsbird@gmail.com0tag:blogger.com,1999:blog-7336462756272110356.post-11950435835811846702009-04-21T01:34:00.000-07:002009-04-21T01:35:48.786-07:00Telnet login RHEL no password<table id="LogContentTLRN" align="left" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr id="LogActivityRLRN_2__219" valign="top"></tr><tr id="LogActivityRLRN_2__219" valign="top"><span id="UpdateSR"><span id="SRDetailsSubTabRN"><span id="SRHistoryTabxRN"><span id="SRLogxRN"></span></span></span></span><td id="ActivitySpcCFRN_2__219" width="10"><br /></td><td id="ActivityTextCFRN_2__219" align="left"><span id="ActivityTextFLRN_2__219"><span id="NoteDetailText_1__219" class="x4"> <br /> No passord for telnet User with the following procedure :<br /><br /> a) created a user "manolo"<br /> <br /> #useradd manolo<br /> b) added a password<br /> <br /> # passwd manolo<br /> c) opened /etc/shadow and deleted the password manually for the user.<br /> <br /> # vi /etc/shadow<br /> <br /> output<br /><br /> manolo:$1$kAOxC9VT$rgJjMuzFz229KTjsKEBxP/:14354:0::7:::<br /><br /> d) deleted the password manually:<br /> <br /> manolo::14354:0::7:::<br /><br /> <br /> e) then telnet using manolo to my host.<br /><br /> # telnet -l manolo 10.33.8.105<br /> <br />Managed to log in with out prompting for a password .<br /><br />Please be Advised that I recommend ssh with shared keys or telnet through an ssh tunnel<br /><br /><br /></span></span></td></tr></tbody></table><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7336462756272110356-1195043583581184670?l=www.adminlinux.org'/></div>bighandsbirdhttp://www.blogger.com/profile/10204317846080625082Bighandsbird@gmail.com0tag:blogger.com,1999:blog-7336462756272110356.post-44549082374356305892009-04-20T13:21:00.000-07:002009-04-20T13:23:10.841-07:00SSH no password rsa-key RHEL 5<table id="LogContentTLRN" align="left" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr id="LogActivityRLRN_9__219" valign="top"></tr><tr id="LogActivityRLRN_9__219" valign="top"><span id="UpdateSR"><span id="SRDetailsSubTabRN"><span id="SRHistoryTabxRN"><span id="SRLogxRN"></span></span></span></span><td id="ActivitySpcCFRN_9__219" width="10"><br /></td><td id="ActivityTextCFRN_9__219" align="left"><h3 class="post-title">SSH no password rsa-key RHEL</h3><br /><span id="ActivityTextFLRN_9__219"><span id="NoteDetailText_4__219" class="x4"><br />1) On the machine you are trying to access open a terminal and </span></span> <span style="font-weight: bold;">(Skip these step if you never generated a key before and or you want a fresh start)</span><br /><span id="ActivityTextFLRN_9__219"><span id="NoteDetailText_4__219" class="x4"><br /> a) As root backup .ssh directory for the user by moving it to ssh.backup<br /><br /> # mv /home/user/.ssh/ ssh.backup<br /><br />2) On the machine that we will generate the RSA-Key open a terminal and </span></span> <span style="font-weight: bold;">(Skip these step if you never generated a key before and or you want a fresh start)</span><br /><span id="ActivityTextFLRN_9__219"><span id="NoteDetailText_4__219" class="x4"> <br /> a) As root backup .ssh directory for the user by moving it to ssh.backup<br /> <br /> # mv /home/user/.ssh/ ssh.backup<br /><br />3)On the machine that we will generate the RSA-Key open a terminal and<br /> <br /> a) Create the RSA key as the user you want to access the remote machine<br /> <br /> # ssh-keygen<br /><br /> b) Press enter to accept defaults<br /> <br /> Generating public/private rsa key pair.<br /> Enter file in which to save the key (/home/manuken/.ssh/id_rsa):<br /> Created directory '/home/manuken/.ssh'.<br /><br /> c)Press enter leave the passphrase blank<br /><br /> Enter passphrase (empty for no passphrase):<br /> Enter same passphrase again:<br /> Your identification has been saved in /home/manuken/.ssh/id_rsa.<br /> Your public key has been saved in /home/manuken/.ssh/id_rsa.pub.<br /> The key fingerprint is:<br /> 8a:8f:d3:9e:db:d5:93:b7:c4:fd:d8:0a:21:e1:47:91 manuken@manuken-laptop.lan<br /><br />4) Now copy the key to the remote machine .<br /> <br /> <br /> # ssh-copy-id -i $HOME/.ssh/id_rsa.pub user@remotehost<br /><br />5) ssh in to the machine you should be able to access without a password.<br /></span></span></td></tr></tbody></table><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7336462756272110356-4454908237435630589?l=www.adminlinux.org'/></div>bighandsbirdhttp://www.blogger.com/profile/10204317846080625082Bighandsbird@gmail.com0tag:blogger.com,1999:blog-7336462756272110356.post-6445732631929359072009-04-20T13:14:00.000-07:002009-04-20T13:19:00.886-07:00SSH no password rsa-key RHEL 4.6Hi there creating rsa keys to log in with out a password on RHEL 4.6 follow this how to is a bit different from RHEL 5 release,<br /><br /><br />1) On the machine you are trying to access open a terminal and <span style="font-weight: bold;">(Skip these step if you never generated a key before and or you want a fresh start)</span><br /><br /> a) As root backup .ssh directory for the user by moving it to ssh.backup<br /><br /> # mv /home/user/.ssh/ ssh.backup<br /><br />2) On the machine that we will generate the RSA-Key open a terminal and<span style="font-weight: bold;">(Skip these step if you never generated a key before and or you want a fresh start)</span><br /> <br /> a) As root backup .ssh directory for the user by moving it to ssh.backup<br /> <br /> # mv /home/user/.ssh/ ssh.backup<br /><br />3)On the machine that we will generate the RSA-Key open a terminal and<br /> <br /> a) Create the RSA key as the user you want to access the remote machine<br /> <br /> # ssh-keygen -t rsa<br /><br /> b) Press enter to accept defaults<br /> <br /> Generating public/private rsa key pair.<br /> Enter file in which to save the key (/home/manuken/.ssh/id_rsa):<br /> Created directory '/home/manuken/.ssh'.<br /><br /> c)Press enter leave the passphrase blank<br /><br /> Enter passphrase (empty for no passphrase):<br /> Enter same passphrase again:<br /> Your identification has been saved in /home/manuken/.ssh/id_rsa.<br /> Your public key has been saved in /home/manuken/.ssh/id_rsa.pub.<br /> The key fingerprint is:<br /> 8a:8f:d3:9e:db:d5:93:b7:c4:fd:d8:0a:21:e1:47:91 manuken@manuken-laptop.lan<br /><br />4) Now copy the key to the remote machine .<br /> <br /> a)Issue the comman below in order to cat the id_rsa.pu<br /><br /> # cat $HOME/.ssh/id_rsa.pub<br /> <br /> b) The output will be similar to the one below copy this to the remote machine<br /> <br />ssh-rsa<br />AAAAB3NzaC1yc2EAAAABIwAAAIEAq98nHs9R+yldDsJkSwW84<br />GMG3jGoXVBwl4XLHU8prW3sMewgmSAr3pU5aWMewtdEuQnwt6/BzhR7lvbpRxC85NfljIZJyo<br />78uw/ZkzJZF3CdVqGts9KIHvWzX/LLE2dp3M4o7jQB8ASBp9jP0Je/cEnS86C0t0bUSpz1UYGZrgk= root@remote<br /> <br /> c) Copy the output ( copy the output with your mouse) and ssh in to the remote machine.<br /> <br /> # ssh user@remote<br /> <br /> d) On the remote machine create the /.ssh dir:<br /> <br /> # mkdir /home/user/.ssh<br /> <br /> e) Change the directory to /home/user/.ssh and create the file authorized_keys<br /> <br /> # cd /home/user/.ssh<br /> <br /> # nano authorized_keys<br /> <br /> d) Paste the output from cat $HOME/.ssh/id_rsa.pub in to the authorized_keys<br /> <br /><br />5) ssh in to the machine you should be able to access without a password.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7336462756272110356-644573263192935907?l=www.adminlinux.org'/></div>bighandsbirdhttp://www.blogger.com/profile/10204317846080625082Bighandsbird@gmail.com0tag:blogger.com,1999:blog-7336462756272110356.post-6172044154947767622009-03-12T03:47:00.000-07:002009-03-12T03:52:01.530-07:00How to Rebuild Your rpm Database<span id="UpdateSR"><span id="SRDetailsSubTabRN"><span id="SRHistoryTabxRN"><span id="SRLogxRN"><span id="ActivityTextFLRN_1__308"><span id="NoteDetailText_0__308" class="x4"> Sometimes seems that the Pubkeys on your rpm database doesn't rebuild properly. Try the following to ensure proper update of the Pubkeys :<br /><br /> 1. cd /var/lib<br /> 2. tar -czvf /root/rpmdb-old.tar.gz rpm<br /> 3. rm -f /var/lib/rpm/__db*<br /> 4. cd /var/lib/rpm<br /> 5. mv Pubkeys Pubkeys.old<br /> 6. rpm -vv --rebuilddb </span></span></span></span></span></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7336462756272110356-617204415494776762?l=www.adminlinux.org'/></div>bighandsbirdhttp://www.blogger.com/profile/10204317846080625082Bighandsbird@gmail.com0tag:blogger.com,1999:blog-7336462756272110356.post-30135520803442522322009-02-10T02:32:00.000-08:002009-02-10T02:34:14.977-08:00How to Create a centralized log in server with php-syslog-ng and mysql<h1><a name="how_to_create_a_centralized_log_in_server" id="how_to_create_a_centralized_log_in_server">How to Create a centralized log in server</a></h1> <div class="level1"> <p><span style="font-size:130%;"> Configure syslog-ng to log to mysql database using fifo template <strong>/etc/syslog-ng/sylog-ng.conf</strong>: </span></p> <pre class="code"><span style="font-size:130%;">destination d_mysql {<br />pipe("/tmp/mysql.pipe"<br />template("INSERT INTO logs (host, facility, priority, level, tag, date,<br />time, program, msg) VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL','$TAG',<br />'$YEAR-$MONTH-$DAY', '$HOUR:$MIN:$SEC', '$PROGRAM', '$MSG' );\n") template-escape(yes));<br />};<br /></span></pre> <pre class="code"><span style="font-size:130%;">log { source(net); destination(d_mysql); };<br /></span></pre> <p><span style="font-size:130%;"> Comment out the following line </span></p> <pre class="code"><span style="font-size:130%;">#source src { unix-dgram("/dev/log"); internal(); };<br /></span></pre> <p><span style="font-size:130%;"> Uncomment out the following lines </span></p> <pre class="code"><span style="font-size:130%;">source src { unix-dgram("/etc/log/log"); internal(); };<br />source net { udp(); };<br /></span></pre> <p><span style="font-size:130%;"> Create the fifo pipe for syslog-ng to export out logs </span></p> <pre class="code"><span style="font-size:130%;">mkfifo /tmp/mysql.pipe<br /></span></pre> <p><span style="font-size:130%;"> Create syslog database </span></p> <pre class="code"><span style="font-size:130%;">CREATE DATABASE syslog<br />USE syslog<br /><br />CREATE TABLE logs (<br />host varchar(32) default NULL,<br />facility varchar(10) default NULL,<br />priority varchar(10) default NULL,<br />level varchar(10) default NULL,<br />tag varchar(10) default NULL,<br />date date default NULL,<br />time time default NULL,<br />program varchar(15) default NULL,<br />msg text,<br />seq int(10) unsigned NOT NULL auto_increment,<br />PRIMARY KEY (seq),<br />KEY host (host),<br />KEY seq (seq),<br />KEY program (program),<br />KEY time (time),<br />KEY date (date),<br />KEY priority (priority),<br />KEY facility (facility)<br />) TYPE=MyISAM;<br /></span></pre> <p><span style="font-size:130%;"> Create the fifo pipe for syslog-ng to export out logs </span></p> <pre class="code"><span style="font-size:130%;">mkfifo /tmp/mysql.pipe<br /></span></pre> <p> <span style="font-size:130%;"><strong>Restart syslog-ng process</strong></span> </p> <p><span style="font-size:130%;"> Stop syslog-ng </span></p> <pre class="code"><span style="font-size:130%;">/etc/init.d/syslog-ng stop<br /></span></pre> <p><span style="font-size:130%;"> Start syslog-ng </span></p> <pre class="code"><span style="font-size:130%;">/etc/ini.d/syslog-ng start<br /></span></pre> <p><span style="font-size:130%;"> Pipe Insert scripts </span></p> <pre class="code"><span style="font-size:130%;"># Created by Matthias Buch<br />#<br /><br />In the syslog-ng.conf we use:<br />destination d_oracle {<br />pipe("/dev/ora.pipe"<br />template("INSERT INTO logs (LL_HOST, LL_facility, LL_priority, LL_level, LL_tag,<br />LL_DATE, LL_program, LL_msg) VALUES ( '$HOST', '$FACILILITY', '$PRIORITY',<br />'$LEVEL', '$TAG',<br />to_date('$YEAR.$MONTH.$DAY $HOUR:$MIN:$SEC', 'yyyy.mm.dd hh24:mi:ss'),<br />'$PROGRAM', substr('$MSG',1,511));\n COMMIT;\n") template-escape(yes));<br /></span></pre> <p><span style="font-size:130%;"> This script is used to pipe syslog-ng to mysql </span></p> <pre class="code"><span style="font-size:130%;">#<br /># Created by Tadghe Patrick Danu<br />#<br />#!/bin/bash<br /><br />if [ -e /tmp/mysql.pipe ]; then<br />while [ -e /tmp/mysql.pipe ]<br />do<br />mysql -u theuserid --password=thepassword syslogdb < /tmp/mysql.pipe done else mkfifo /tmp/mysql.pipe fi </span></pre> <p> <span style="font-size:130%;"><strong>CronJob</strong></span> </p> <pre class="code"><span style="font-size:130%;">#Rotate logs once a month<br /><br />0 0 1 * * /var/www/php-syslog-ng/scripts/logrotate.php<br /><br />@reboot /muysql #the name is right is th script that pipes the local logs to mysql.<br /></span><br /></pre> </div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7336462756272110356-3013552080344252232?l=www.adminlinux.org'/></div>bighandsbirdhttp://www.blogger.com/profile/10204317846080625082Bighandsbird@gmail.com0tag:blogger.com,1999:blog-7336462756272110356.post-48165478166585363252009-01-30T04:06:00.000-08:002009-01-30T04:07:54.958-08:00Linux Technician Visual Effects Training Facility London job offerHi there<br /><br /><br />A position has arised in my work place, I thought it could be interesting for someone .<br /><br />The role involves assisting with the running and maintenance of the studios as well as aiding the development of the network infrastructure.<br /><br />Essential Requirements:<br /><br />- Excellent knowledge of the Linux operating system (particularly RH distributions).<br />- Proficiency in installing and upgrading workstations and servers.<br />- Ability to learn quickly and problem solve is essential.<br />- Excellent communication and team working skills.<br />- Accuracy and attention to detail.<br />- Capacity to manage a busy workload with high productivity.<br /><br /><br />Responsibilities:<br /><br />- LAMP server administration including IPTables.<br />- Basic BASH scripting<br />- Support studio IT issues (Linux and Basic Windows)<br />- Research open source solutions on virtualized servers.<br /><br /><br />Useful Knowledge/Interest:<br /><br />- VFX software such as Maya, Renderman, Shake.<br />- Network Management tools.<br /><br />Location:<br />Escape Studios, Shepherds West. W14 0DA<br /><br /><br /><br />Escape Studios is a hub of 3D animation, visual effects and games expertise. We provide the very best services to support the high-end digital<br /><br />content creation industry. From aspiring students to industry leading companies we aim to deliver the same level of quality and customer care.<br /><br />If you're interested in a career in computer graphics then we can provide you with all the resources to make it happen. For our industry partners we<br /><br />provide the tools, training and staff, all by utilising the wealth of knowledge and experience we have in-house. The result is a facility where<br /><br />students, professionals and companies can all benefit in equal measure.<br /><br />Salary: £22K<br /><br />Please send CV's with covering letter to <a href="mailto:linuxtech@escapestudios.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">linuxtech@escapestudios.com</a><br /><br />Please feel free to email if you have any questions.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7336462756272110356-4816547816658536325?l=www.adminlinux.org'/></div>bighandsbirdhttp://www.blogger.com/profile/10204317846080625082Bighandsbird@gmail.com1tag:blogger.com,1999:blog-7336462756272110356.post-75182062731158166762009-01-22T08:49:00.000-08:002009-01-22T08:53:47.604-08:00How to create .tga Targa files with mplayer, for SHAKE editing<span style="font-weight: bold;"><br />On Centos 5.2 / 4.6</span><br /><br />Yum install mplayer<br /><br /><span style="font-weight: bold;">This one liner can be used to create the .tga files </span><br />mplayer filename.mpg -vf scale=1920:1080 -vf format=bgr24 -vo tga -nosound<br /><br /><br /><span style="font-weight: bold;">On Ubuntu<br /></span>ap-get install mplayer<br /><span style="font-weight: bold;"><br />This one liner can be used to create the .tga files </span><br /> mplayer t2-039.mpg -vf scale=1920:1080 -vf format=bgr24 -vo tga -nosound<br /><br /><span style="font-weight: bold;"></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7336462756272110356-7518206273115816676?l=www.adminlinux.org'/></div>bighandsbirdhttp://www.blogger.com/profile/10204317846080625082Bighandsbird@gmail.com0tag:blogger.com,1999:blog-7336462756272110356.post-19235800026292347232009-01-20T05:47:00.000-08:002009-01-20T05:50:24.511-08:00How to Install Shake, Nvidia driver and Centos 5.2<style> <!-- @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } --> </style> <p style="margin-bottom: 0cm;"><b>Install Centos 5.2 </b> </p> <p style="margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><br /></p> <ul><li><p style="margin-bottom: 0cm;"></p> Boot from your first CentOS 5.2 DVD. Press <enter> at the</enter> boot prompt.</li></ul> <p style="margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><br /></p> <ul><li><p style="margin-bottom: 0cm;"> It can take a long time to test the installation media so we skip this test. </p> </li></ul> <p style="margin-left: 0.5cm; text-indent: -0.5cm; margin-bottom: 0cm;"><br /></p> <ul><li><p style="margin-bottom: 0cm;">The welcome screen of the CentOS installer appears. Click on Next.</p> </li></ul> <ul><li><p style="margin-bottom: 0cm;">Choose your language .</p> </li></ul> <p style="margin-left: 0.5cm; text-indent: -0.5cm; margin-bottom: 0cm;"><br /></p> <ul><li><p style="margin-bottom: 0cm;">Select your keyboard layout</p> </li></ul> <p style="margin-left: 0.5cm; text-indent: -0.5cm; margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><br /></p> <ul><li><p style="margin-bottom: 0cm;">If you are installing CentOS 5.2 on a fresh system, answer Yes to the question Would you like to initialize this drive, erasing ALL DATA?</p> </li></ul> <p style="margin-left: 0.5cm; text-indent: -0.5cm; margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><br /></p> <ul><li><p style="margin-bottom: 0cm;">Now we must select a partitioning scheme for our installation. For simplicity's sake I select Remove linux partitions on selected drives and create default layout. This will result in a small /boot and a large / partition as well as a swap partition. Of course, you're free to partition your hard drive however you like it. Then I hit Next.</p> </li></ul> <p style="margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><br /></p> <ul><li><p style="margin-bottom: 0cm;">Answer the following question (Are you sure you want to do this?) with Yes.</p> </li></ul> <p style="margin-left: 0.5cm; text-indent: -0.5cm; margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><br /></p> <ul><li><p style="margin-bottom: 0cm;">On to the network settings. The default setting here is to configure the network interfaces with DHCP, but we are installing a server, so static IP addresses are not a bad idea... Click on the Edit button at the top right.</p> </li></ul> <p style="margin-left: 0.5cm; text-indent: -0.5cm; margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><br /></p> <ul><li><p style="margin-bottom: 0cm;">Choose your time zone</p> </li></ul> <p style="margin-left: 0.5cm; text-indent: -0.5cm; margin-bottom: 0cm;"><br /></p> <ul><li><p style="margin-bottom: 0cm;">Give root a password</p> </li></ul> <p style="margin-left: 0.5cm; text-indent: -0.5cm; margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><br /></p> <ul><li><p style="margin-bottom: 0cm;">The installer checks the dependencies of the selected packages:</p> </li></ul> <p style="margin-left: 0.5cm; text-indent: -0.5cm; margin-bottom: 0cm;"><br /></p> <ul><li><p style="margin-bottom: 0cm;">Click on Next to start the installation:</p> </li></ul> <p style="margin-left: 0.5cm; text-indent: -0.5cm; margin-bottom: 0cm;"> The hard drive is being formatted</p> <p style="margin-left: 0.5cm; text-indent: -0.5cm; margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><br /></p> <ul><li><p style="margin-bottom: 0cm;">Finally, the installation is complete, and you can remove your CD or DVD from the computer and reboot it</p> </li></ul> <p style="margin-left: 0.5cm; text-indent: -0.5cm; margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"> </p> <p style="margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><b>Installing Nvidia drivers</b></p> <p style="margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><span style="">INSTRUCTIONS: HOW-TO INSTALL NVIDIA DRIVERS IN CENTOS 5.2<br /><br />Browse to nvidia.com and downloaded the linux drivers (x86_64 in my case):<br /><br /></span><span style="color: rgb(0, 0, 128);"><u><a href="http://www.nvidia.com/object/linux_display_amd64_173.14.09.html" target="_blank"><span style="">http://www.nvidia.com/object/linux_display_amd64_173.14.09.html</span></a></u></span><span style=""> (or whatever current one is)<br /><br />2. Download the file: NVIDIA-Linux-x86_64-173.14.09-pkg2.run (or whatever current one is)<br /><br />3. Get out of X. At a shell, type: init 3<br /><br />You cannot be in X while doing this. Running 'init 3' will kick you out of X, back to a console prompt.<br /><br />4. Login as root<br /><br />5. Move the downloaded file to ~ (/root)<br /><br />mv /home/whateveryournameis/Desktop/NVIDIA* /root<br /><br />6. You have to install the kernel source code with yum, before running the nvidia utility:<br /><br />Just run: yum install kernel-devel<br /><br />7. Unpack the archive, and start the installer:<br /><br />Just run: sh NVIDIA-Linux-x86_64-173.14.09-pkg2.run<br /><br />This will unpack the archive, and automatically run the 'nvidia-installer' for you.<br /><br />Just follow the prompts.<br /><br />8. After driver is installed, you need to update your /etc/X11/xorg.conf file to use the new driver.<br /><br />Just run: nvidia-xconfig<br /><br />It will modify your xorg.conf file for you automatically.<br /><br />9. Reboot<br /><br />10. Enjoy :)</span></p> <p style="margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><b>Installing shake </b> </p> <p style="margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"> shake-linux-v4.10.0606a.tar.gz</p> <p style="margin-bottom: 0cm;"><br /></p> <ol><li><p style="margin-bottom: 0cm;">Go to applications then sytem tools and open the terminal.</p> </li></ol> <p style="margin-left: 0.5cm; margin-bottom: 0cm;"><br /></p> <ol start="2"><li><p style="margin-bottom: 0cm;">all the following commands are to be executed in the terminal or just copy and paste:</p> </li></ol> <p style="margin-left: 0.5cm; margin-bottom: 0cm;"><br /></p> <p style="margin-left: 0.5cm; margin-bottom: 0cm;"><i>tar -zxvf shake-linux-v4.10.0606a.tar.gz .</i></p> <p style="margin-left: 0.5cm; margin-bottom: 0cm;"><u><i>pwd </i></u> </p> <p style="margin-left: 0.5cm; margin-bottom: 0cm;"><br /></p> <ol start="3"><li><p style="margin-bottom: 0cm;"> Copy the output of the “pwd” command with your mouse then:</p> </li></ol> <p style="margin-bottom: 0cm;"> </p> <p style="margin-bottom: 0cm;"> <i>nano /etc/profile</i></p> <p style="margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;"> scroll down until the end of the document and write:</p> <p style="margin-bottom: 0cm;"> </p> <p style="margin-bottom: 0cm;"> <i>PATH=$PATH:/</i>paste/from/your/mouse/</p> <p style="margin-bottom: 0cm;"> </p> <p style="margin-bottom: 0cm;"> press control-x and “yes” to save the settings</p> <p style="margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm;">3. Open a terminal again and write: <i> shake </i> you should be able to run shake.</p> <p style="margin-bottom: 0cm;"><br /></p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7336462756272110356-1923580002629234723?l=www.adminlinux.org'/></div>bighandsbirdhttp://www.blogger.com/profile/10204317846080625082Bighandsbird@gmail.com0tag:blogger.com,1999:blog-7336462756272110356.post-59497940404452611962009-01-06T02:20:00.000-08:002009-01-06T02:21:59.205-08:00Basic Samba Troubleshooting Commands<span style="font-weight: bold;">Samba Troubleshooting </span><br /><br />Basic “survival” commands:<br /><br /><span style="font-weight: bold;">check samba configuration file</span> :<br /><br />testparm -S<br /><br /><span style="font-weight: bold;">check samba status</span> :<br /><br />smbstatus -L<br /><br /><span style="font-weight: bold;">check samba services</span> :<br /><br />smbclient -L localhost<br /><br /><span style="font-weight: bold;">connect to a service</span> :<br /><br />smbclient \\\\localhost\\share<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7336462756272110356-5949794040445261196?l=www.adminlinux.org'/></div>bighandsbirdhttp://www.blogger.com/profile/10204317846080625082Bighandsbird@gmail.com0tag:blogger.com,1999:blog-7336462756272110356.post-42134495273317015472008-12-23T02:24:00.000-08:002008-12-23T02:27:18.108-08:00How to Rebuild a corrupt Ldap DatabaseRebuilding the Ldap Database is very simple, and yes you will have to rebuild the database sooner or later.<br /><br />Here is how.<br /><br />#Stop the services:<br />/etc/init.d/ldap stop<br /><br />#rename folder<br />mv /var/lib/ldap /var/lib/ldap.backup.date<br /><br />#create folder<br />mkdir /var/lib/ldap<br /><br />#add database info<br />slapadd –l /backups/ldap_backup.ldif <br /><br />#Set Owner<br />chown –R ldap:ldap /var/lib/ldap<br /><br />#Set Perms<br />chmod –R 755 /var/lib/ldap<br /><br />#Start Services<br />/etc/init.d/ldap start<br /><br />Ldap should OK now.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7336462756272110356-4213449527331701547?l=www.adminlinux.org'/></div>bighandsbirdhttp://www.blogger.com/profile/10204317846080625082Bighandsbird@gmail.com0tag:blogger.com,1999:blog-7336462756272110356.post-15910253034215370072008-12-06T11:35:00.000-08:002008-12-06T14:03:12.123-08:00Red Hat Linux Commercial<object width="300" height="344"><param name="movie" value="http://www.youtube.com/v/2_VFKqw1q2Q&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/2_VFKqw1q2Q&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7336462756272110356-1591025303421537007?l=www.adminlinux.org'/></div>bighandsbirdhttp://www.blogger.com/profile/10204317846080625082Bighandsbird@gmail.com0tag:blogger.com,1999:blog-7336462756272110356.post-54756631779853831832008-12-05T03:56:00.000-08:002008-12-05T06:11:31.803-08:00How to SELinux: could not open policy file <= /etc/selinux/targeted/policy/policy.23: Halting now.Two days ago I had a problem when disabling SElinux, when i rebooted I had this Kernel panic!<br /><br /><br /><br /><pre class="alt2" dir="ltr" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 250px; height: 274px; text-align: left;"><br />Booting `Fedora (2.6.25-14.fc9.i686)´<br /><br />root (hd0,0)<br />Filesystem type is ext2fs, partition type 0x83<br />kernel /boot/vmlinuz-2.6.25-14.fc9.i686 ro root=UUID=64d8152d-508c-46ff-b8cd-9c2f4dc52510 rhgb quiet<br />[Linux-bzImage, setup=0x37d5d000, size=0x1fab60]<br />initrd /boot/initr-2.5.25-14.fc9.i686.img<br />[Linux-initrd @ 0x37d5d000, 0x292b6f bytes]<br /><br /><br />Decompressing Linux... done.<br />Booting the kernel.<br />Red Hat nash version 2.0.52 starting<br />SELinux: could not open policy file <= /etc/selinux/targeted/policy/policy.23: No such file or directory Unable to load SELinux policy (No such file of directory). Halting now. </pre><br /><br />The Solution was to boot the server, select an option from the boot screen press "e" add <br /><br /><div style="margin: 5px 20px 20px;"> <div class="smallfont" style="margin-bottom: 2px;">Code:</div> <pre class="alt2" dir="ltr" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 250px; height: 34px; text-align: left;">selinux=0</pre> </div><br /><br /><div style="margin: 5px 20px 20px;"> <div class="smallfont" style="margin-bottom: 2px;">Code i.e :</div> <pre class="alt2" dir="ltr" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 250px; height: 50px; text-align: left;">kernel /boot/vmlinuz-2.6.25-14.fc9.i686 ro root=UUID=64d8152d-508c-46ff-b8cd-9c2f4dc52510 rhgb quiet selinux=0</pre> </div><br /><br />Then Press "b"<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7336462756272110356-5475663177985383183?l=www.adminlinux.org'/></div>bighandsbirdhttp://www.blogger.com/profile/10204317846080625082Bighandsbird@gmail.com2tag:blogger.com,1999:blog-7336462756272110356.post-25091915305767369292008-11-24T06:29:00.000-08:002008-11-24T06:30:50.534-08:00Increase MySQL connection limit<div class="entry"> <p>The default is 100, but sometimes that’s not enough!</p> <p>For MySQL 3.x:<br /># nano /etc/my.cnf<br />set-variable = max_connections = 250</p> <p>For MySQL 4.x and 5.x:<br /># nano /etc/my.cnf<br />max_connections = 250</p> <p>Restart MySQL once you’ve made the changes and verify with:<br />echo “show variables like ‘max_connections’;” | mysql</p> </div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7336462756272110356-2509191530576736929?l=www.adminlinux.org'/></div>bighandsbirdhttp://www.blogger.com/profile/10204317846080625082Bighandsbird@gmail.com0tag:blogger.com,1999:blog-7336462756272110356.post-11477881126498915532008-11-07T00:39:00.000-08:002008-11-07T00:42:54.891-08:00Lazy Linux: 11 secrets for lazy cluster admins<table border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr valign="top"><td width="100%"><h1>Lazy Linux: 11 secrets for lazy cluster admins</h1><p id="subtitle"><em>This info was found on IBM excellent tips<br /></em></p><p id="subtitle"><em><br /></em></p><p id="subtitle"><em>Visit the inner sanctum of lazy Linux admins and discover how to reduce effort, regardless of number of nodes</em></p><img alt="" src="http://www.ibm.com/i/c.gif" class="display-img" height="6" width="1" /></td><td class="no-print" width="192"><br /></td></tr></tbody></table><table border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr valign="top"><td width="10"><img alt="" src="http://www.ibm.com/i/c.gif" height="1" width="10" /></td><td width="100%"><table class="no-print" align="right" border="0" cellpadding="0" cellspacing="0" width="160"><tbody><tr><td width="10"><img alt="" src="http://www.ibm.com/i/c.gif" height="1" width="10" /></td><td><br /></td></tr></tbody></table><p>Level: Intermediate</p><p><a href="http://www.ibm.com/developerworks/linux/library/l-11sysadtips/index.html?ca=drs-#author">Vallard Benincosa</a>, Certified Technical Sales Specialist, IBM<br /><a href="http://www.ibm.com/developerworks/linux/library/l-11sysadtips/index.html?ca=drs-#author">Egan Ford</a> (<a href="mailto:egan@us.ibm.com?subject=Lazy%20Linux:%2011%20secrets%20for%20lazy%20cluster%20admins">egan@us.ibm.com</a>), Linux Cluster Executive IT Specialist, IBM <br /></p><p> 22 Oct 2008</p><blockquote><i>Cluster</i> means different things to different people. In the context of this article, cluster is best defined as <i>scale-out</i> -- scale-out clusters generally have a lot of the same type of components like Web farms, render farms, and high performance computing (HPC) systems. Administrators will tell you that with scale-out clusters any change, no matter how small, must be repeated up to hundreds of thousands of times; the laziest of admins have mastered techniques of scale-out management so that regardless of the number of nodes, the effort is the same. In this article, the authors peer into the minds of the laziest Linux® admins on Earth and divulge their secrets.</blockquote><!--START RESERVED FOR FUTURE USE INCLUDE FILES--><script type="text/javascript" language="javascript"> // <![CDATA[ capture_referrer(); // ]]> </script> <!-- START : HTML FOR SEARCH REFERRER --> <div id="search_referrer_results" style="display: none;"> <!-- START : HTML FOR ARTICLE SEARCH --> <!-- END : HTML FOR ARTICLE SEARCH --> <!-- START : HTML FOR CODE SEARCH --> <!-- END : HTML FOR CODE SEARCH --> <br /> <br /> </div> <!-- END : HTML FOR SEARCH REFERRER --><!--END RESERVED FOR FUTURE USE INCLUDE FILES--> <p> Since their first appearance in 1998 in the list of the Top 500 fastest computers in the world, Linux clusters have risen from an obscure science experiment to the position of today's dominant force in supercomputing technology. In fact, the number of Linux clusters in the Top 500 list has grown from 1 system in 1998 (1 cluster, 1 Linux OS system) to four-fifths of the list in 2008 (400 clusters, 458 Linux OS systems). </p> <p> Managing Linux clusters requires a unique set of skills that are not usually found among the single-system or small-networked-systems IT administrators -- it requires an in-depth knowledge of networking, operating systems, and pretty much all subsystems in the architecture. </p> <p> But this is not all: It requires a different attitude. It requires laziness above all else. It requires the admin to do what Scrooge McDuck told his nephews in Duckburg: "Work smarter, not harder." </p> <p> In this article we discuss some of the best secrets of the laziest Linux cluster admins. While they can hardly be called secrets, for some reason people either do not understand or they underestimate the power of these ideas. To clear this matter up, we'll present the secrets here with an explanation of their importance. </p> <table align="right" border="0" cellpadding="0" cellspacing="0" width="40%"><tbody><tr><td width="10"><img alt="" src="http://www.ibm.com/i/c.gif" height="1" width="10" /></td><td><table border="1" cellpadding="5" cellspacing="0" width="100%"><tbody><tr><td bgcolor="#eeeeee"> <a name="sidebar1"><b>More ways to laze</b></a><br /> <ul><li> <a href="http://www.ibm.com/developerworks/linux/library/l-10sysadtips/" onmouseover="linkQueryAppend(this)">Lazy Linux: 10 essential tricks for admins</a> </li><li><a href="http://www.ibm.com/developerworks/views/linux/libraryview.jsp?end_no=100&lcl_sort_order=desc&type_by=Articles&sort_order=desc&show_all=false&start_no=1&sort_by=Date&search_by=linux+tip%3A&topic_by=All+topics+and+related+products&search_flag=true&show_abstract=true" onmouseover="linkQueryAppend(this)">More Linux tips on developerWorks</a> </li></ul> </td></tr></tbody></table></td></tr></tbody></table> <p> The secrets are </p> <ol><li>Don't reinvent the wheel.</li><li>Use open source.</li><li>Automate everything.</li><li>Design for scale - plan to be lazy from the start.</li><li>Design for hardware manageability.</li><li>Use good cluster management software - don't dig wells with teaspoons.</li><li>Use open source monitoring solutions.</li><li>Control your users with a queuing system.</li><li>Verify you get what you pay for - benchmark it!</li><li>Manage cluster communication.</li><li>Look for ways to become lazier.</li></ol> <p><a name="N100CB"><span class="atitle">1. Don't reinvent the wheel</span></a></p> <p> The lazy Linux cluster admin is not in the business of wheel-making; he focuses on building upon the work of others. There is no sense in wasting time building an application when a free supported solution already exists. </p> <p> One of the rarest things in the world is an original idea or an original problem -- especially in the Linux cluster world. You will rarely come across something that has not been struggled over and solved back in 2004. This shouldn't make you feel unimportant or unoriginal; rather you should feel confident that there is really no problem that can not be solved (speaking technically, not politically or socially). So accept the fact that most problems and their solutions have been recognized, diagnosed, and solved. </p> <p> To waste less time, the efficient admin spends more time: </p> <ul><li>Researching solutions that exist and adapting them to his own needs. Isaac Newton quoted Bernard of Chartres when he noted that in his work he stood "on the shoulders of giants." Think what would have been lost if he did not first try to understand Euclid's Elements first and then build off of others.</li><li>Contributing or customizing open source projects rather than reinventing something that has already been done - knowing full well that if he writes something, it will more than likely fizzle out when he leaves to a new job because no one else will understand it.</li></ul> <p> We don't mean to stifle your creativity -- quite the opposite. Using work already made by others allows you to build the next layer that will make your environment far superior and efficient than those in other organizations. </p> <p><a name="N100E7"><span class="atitle">2. Use open source</span></a></p> <p> The most successful Linux cluster admins that we have worked with have a vast knowledge of current open source projects. They are the frequent contributors to mailing lists and their names are the ones associated with current projects when you search on the Internet. They usually troll http://sourceforge.net and http://freshmeat.net for new projects that interest them. </p> <p> Open source tools have properties that allow them to live longer than the person championing them, especially the popular ones. There is a very good reason that tools like Ganglia, Nagios, and TORQUE are still in use even though they have been around a long time. They are good -- they save administration in software costs and licensing schemes. </p> <p> One other aspect of the laziest cluster admins is that they are quite passionate about open source and use it in their own personal pursuits. This may be their own Web servers at home or applications that they run on their own Linux notebook. From Pidgin to Firefox, you'll find that the laziest Linux admins run Linux in some other aspect of their lives distinct from the clusters they manage at work. </p> <p><a name="N100F7"><span class="atitle">3. Automate everything</span></a></p> <p> Using scripts on the command line and other quick writes are a big part of the Linux admin's tool chest. Scripting (as long as it doesn't reinvent anything) provides two useful results: </p> <ul><li>The first and most obvious is that it saves typing and provides a repeatable pattern. </li><li>The second is that it is self documenting and can be referred back to later. </li></ul> <p> We quite commonly see skilled admins with directories for scripts they have written on their machines. These scripts do everything from checking the firmware versions on the nodes to mapping GUIDs in an InfiniBand cluster. </p> <p> One example where scripting is quite appropriate is that of generating an operating system image, whether it be stateless or stateful. If an admin has a "golden image" that needs to be propagated to each compute node on the system, he should know what is in it. Having a script that creates that image is the best documentation available because it explains exactly what is done and it is repeatable. Without scripts to build images, image bloat occurs and that eats up more space and slows the system down. </p> <p> Too often we run across organizations with a golden image that they have been nurturing since 2000. The biggest reason: They don't know how to rebuild it. The second and probably the best reason: Because their application has been tested and "certified" on this image. <i>Certified</i> is one of those terms you run across that is as nebulous as the definition of <i>cloud computing</i> (which by the way is not a patented nor trademarked term). </p> <p> The secret of why you should want to automate things is this: It takes more brain power to get out of work than it does to actually do work. The lazy Linux cluster admin does not accept work that turns his brain into fluff. If you have to ssh into every machine in the cluster and run a command, you are not being lazy enough. All commands to nodes should be done in one fell swoop using parallel commands or procedures. If your hardware vendor does not have Linux tools to automate BIOS updates or subsystem flashing, you should factor that into your acquisition cost. </p> <p> Tips 8 and 10 in our last article on "<a href="http://www.ibm.com/developerworks/linux/library/l-10sysadtips?S_TACT=105AGX03&S_CMP=ART" onmouseover="linkQueryAppend(this)">Lazy Linux: 10 essential tricks for admins</a>" documented several command-line scripting techniques we use often. There are many other ways to do it, some of which may be more efficient, but those tips just give you an idea of what can be done. </p> <p><a name="N10124"><span class="atitle">4. Design for scale and plan to be lazy from the start</span></a></p> <p> Secret Number 3 (automate, automate, automate) is a great goal, but it is just a step on the path to <i>complete idleness</i>. For the laziest of admins, complete idleness can only be achieved with autonomous scale-out management. The first step in this quest is a system immune to operations that do not scale. </p> <p> Very large scale-out clusters are plagued with bottlenecks. That is, most scale-out admins use TFTP to network boot or install large sets of machines. As any experienced scale-out-oriented admin can tell you, TFTP is unreliable and does not scale. Without proper remote hardware control, a massive TFTP failure could require the lazy admin to actually get out of his chair (bed) and walk (bum a ride) to the data center (not home) to reset each and every machine (busywork)! Even with proper remote hardware control, the lazy admin will have to stop playing <i>WoW</i> long enough to periodically issue the commands (again, busywork) to reset the nodes at a smaller scale to get the system up. </p> <p> With a little upfront planning management, bottlenecks (like the following) can be avoided. </p> <p><a name="N1013A"><span class="smalltitle">Bottleneck #1: Provisioning services</span></a></p> <p> DHCP, TFTP, HTTP, NFS, and DNS are the most common services used to provision clusters. Each of them has a threshold -- TFTP is the worst one when it comes to scaling. Fortunately all of them can be easily replicated to assist with scale. </p> <p> Tip: Isolating DHCP and TFTP to a different NIC will dramatically increase scalability. For instance, we have measured TFTP scaling at 40:1 if sharing the NIC with other provisioning services; 80:1 if not sharing services or stateless booting. </p> <p><a name="N10146"><span class="smalltitle">Bottleneck #2: The network</span></a></p> <p> The network it is often the most overlooked part of any design. We are referring to the GigE network used for management, not specialized high performance networks used for application traffic. Although in many cases there is only one network that must be shared for data and management; this can compound any scaling issues. </p> <p> Be careful when designing hierarchal networks that you do not oversubscribe too much. If an 80:1 node-to-service-node ratio is required, make sure that ratio is maintained or exceeded throughout the fabric. </p> <p><a name="N10152"><span class="smalltitle">Bottleneck #3: Don't bite off more than you can chew</span></a></p> <p> When we design large scale-out clusters, we take a cluster-of-clusters approach. Each sub-cluster or scalable-unit (SU) is a building block that scales within itself for all cluster operations, (for example, install, network boot, BIOS flashing, monitoring, etc.). Each SU has a one or more (depending on the size of the SU) service nodes to provide the services necessary to control, monitor, and provision all the nodes in the SU. To further aid in scalable management, each SU has its own broadcast domain (SU-to-SU and SU-to-World communications are routed -- check for bottlenecks). </p> <p> The central management node and service nodes have a private physical or virtual network so that aggregation of information from the service nodes and data pushed to the service nodes do not compete with other cluster traffic. We refer to this network, the management node, and the service nodes as the <i>hierarchal management cloud</i> or HMC. Its setup and operation is solely in the domain of the admins. </p> <p> This cluster-of-clusters approach will allow the lazy admin to design systems that can scale beyond any budget and allow the same admin central control without fear that massive operations will fail. </p> <p><a name="N10164"><span class="atitle">5. Design for hardware manageability</span></a></p> <p> We are surprised at the number of admins who don't think in terms of "lights out" when designing their clusters. Efficient administrators operate lights-out clusters, meaning their clusters sit in dark rooms away from humans and ideally it would be weeks or months before they actually need to see the physical machines they work on daily. In some cases, they'll never see the machines because they are managing them from the other side of the world. Of course, the laziest don't even know where the data center is -- it is just a set of host names or IP addresses. </p> <p> Data centers are loud and sometimes cold (and who knows, maybe dangerous); the lazy admin should avoid them at all costs. Who knows the as-yet undiscovered health hazards of being in rooms with lots of machines. As power/cooling/staffing costs rise, the trends are towards moving data centers to places that are less expensive to operated. With this in mind, having absolute remote control should be regarded as essential to managing a Linux cluster now and for the foreseeable future. </p> <p> Hardware vendors have largely given into customer desires for standards to remotely manage systems. IPMI 2.0 has become the current standard for most managed Linux clusters managed. IPMI offers a way to remotely power-cycle a machine, as well as have remote console viewable to see the machine boot from BIOS. At one customer site, we were able to troubleshoot a machine that was 60 miles away from us in the comfort of the customer's office. (The customer was one of those lazy Linux admins whose office was only lit by the neon signs on his wall. His office-turned-bachelor-pad was also equipped with two fridges laden with energy drinks and sugar-coated snacks. Needless to say, we didn't want to leave the office.) </p> <p> IPMI is powerful -- we could change BIOS settings, reboot the nodes, and watch them boot up and see the screen dump without ever seeing the machine - it should be set up on all clusters. You should always demand at the least: </p> <ul><li>Remote powering of the machines and</li><li>Remote console or better viewing of the machines to see boot up problems that may arise.</li></ul> <p> With IPMI, we see little need in the Linux cluster space for other boxes that merely provide us a glorified interface to run IPMI other than perhaps a management node. Instead, we recommend standard open source tools like ipmitool that come packaged with most Linux distributions already. We find that our laziest Linux cluster admins will live and die by the command line. </p> <p> What is still open to debate is the dependability of IPMI for remote console. We recognize that there are times when a real out-of-band terminal server can be of value. Terminal servers such as the Cyclades ACS48 remain a reasonable investment and provide out-of-band access and reliability that IPMI does not quite deliver. </p> <p> In addition, IPMI 1.5 was not the most reliable IOHO (and it was an industry-wide issue). IPMI 2.0 does a much better job and many vendors add fancy Web pages around it to make it seem like it's out-of-band enough. There are arguments to include and not include terminal servers and just use IPMI native on the machine. Most of our customer's trains of thought chug along like this: <i>Every lazy Linux admin knows that he spends a great deal of time troubleshooting 5 percent of the nodes when 95 percent of them are doing just fine. In a case like this, perhaps it is better to just buy 5 percent more nodes instead of infrastructure and have spares. This then means the budget is spent more on compute power than on infrastructure.</i> </p> <p> The argument that counters this one is that if one terminal server can save a plane trip across the country to troubleshoot a node, then the expense is worth it. We let the lazy Linux admin make the call -- after all, it's him that has to get in the plane. We've seen strong opinions on both sides. </p> <p><a name="N1018F"><span class="atitle">6. Good cluster management software keeps you from digging wells with teaspoons</span></a></p> <p> Cluster tools have come a long way since we first started installing Linux clusters in 1999. Back then, there were not many cluster management tools available and as such, most admins created home-grown suites of tools that deployed, monitored, and managed their clusters. </p> <p> The laziest admins have either adopted open source tools or made the tools they developed back in 1999 available to the community. Seldom does anyone have an environment so unique that open source tools can not fill this gap. Most often, those who champion their own tools usually are alone and when they leave an organization, their tools disappear. However, we do recognize that there are many sites where customized tools work just fine. </p> <p> If you are not satisfied with your home-grown tools or are looking for something better, consider looking at several open source tools. Among the most prevalent for managing clusters are OSCAR (System Imager), ROCKS, Perceus, and or our personal favorite xCAT 2. All of which are open source. </p> <p> Perhaps the most popular open source cluster deployment/control solution today is ROCKS. ROCKS was created and maintained by UCSD and they have done a good job of making clusters user friendly. Our only gripe is its lack of flexibility, primarily at the OS level. ROCKS is based on Red Hat distributions which is fine for many people, but not those who use SUSE or wish to use images they have created based on RH 6.2 distributions. In addition, ROCKS is not a cloning solution which we find many IT organizations using. </p> <p> Perceus is another such solution that differs from ROCKS in that it is a stateless installation. For the purposes of this article, we define stateless computing as running your operating system in memory instead of keeping it on disk. A disk is not required but can be used for local scratch or for swap. </p> <p> What we like about xCAT other than our vested interest (full disclosure; we contribute code and actively develop xCAT) is that it has more flexibility, scales more, and has more power than any of the other tools. (And it has the most handsome and intelligent contributors.) The fastest supercomputer on earth, the LANL RoadRunner system (the Cell/B.E.™/Opteron™ hybrid that is the first one-petaflops system <i>and</i> first one-petaflops Linux cluster) is managed by xCAT. </p> <p> xCAT allows imaging, kickstart, autoyast, iscsi, and stateless for nearly every enterprise Linux distribution available. In addition, it has command-line tools that abstract IPMI commands from remote power to console setup and uses them in the same framework. xCAT has been actively developed since October 31, 1999 and was open sourced by IBM in 2007. </p> <p> But to be fair, we'll mention the drawbacks to xCAT as well: </p> <ul><li>It can be difficult to set up; with so much flexibility there are a lot of configurable parameters. We have set up a wiki to make this easier and there is lots of support via mailing lists and IRC channels.</li><li>xCAT 2 is a complete rewrite of the venerable xCAT 1.3 and as such, there are features that need to be ironed out.</li><li>Like many open source tools, the documentation could be improved.</li></ul> <p> There are many other cluster management solutions and we could easily have the <i>Emacs vs. vi</i> debate on the topic. But we'll just end with this: Give xCAT a try if you are looking for ideas or something better. </p> <p><a name="N101C7"><span class="atitle">7. Use open source monitoring solutions</span></a></p> <p> Last year at SC'07 we met with several top labs in the US to discuss the difficult problem of monitoring a Linux cluster. That lead to a few calls in early 2008 to discuss this problem. Monitoring is difficult for several reasons: </p> <ul><li>As the cluster gets larger, the data collected is larger and performance can be felt on the machine receiving monitored information. For example, if there are 2,000 machines and each one is sending metrics to an infrastructure node, the node can be brought to its knees and leave you wondering if it's responding.</li><li>Collecting data with agents on compute nodes can suck memory and CPU cycles from the user's jobs. Many shops want no agents on the nodes because it lowers performance of applications. Striking the balance requires trade-offs: Is it worth the CPU cycles taken to get the data?</li><li>We have not seen a scaleable tool that ties user jobs with machine performance to profile jobs in a way that is usable and visually appealing.</li><li>There are no tools that do it all exactly as you would like it to be done. This is what is perhaps most striking about this space: The tools used are incomplete and miss doing at least one something everyone would want. Most admins use a combination of one or two management products. When we see products that promise to monitor your cluster that surpass all other solutions we are skeptical: Every cluster is different and no one size fits all. Customized monitoring seems to be the only way out of it.</li></ul> <p> So given the complexity, here's how some of the laziest administrators we know are solving the problem. </p> <p> The most common solution we've noticed at large cluster shops (including top universities and government labs) was to use Nagios for alerting and Ganglia for monitoring. Between these two very customizable tools an admin can get great insight into the multitudes of things happening on the cluster. Ganglia has proven to scale extremely well. </p> <p> But there are other points of view as well. At USC, Garrick Staples wrote pbstop as a plug-in to TORQUE to visually see what each job is doing and where it is running. He says this is all the monitoring that he needs and doesn't use anything else. </p> <p> The most popular open source monitoring tools we have seen used by the scale-out cluster community are: </p> <ul><li>Nagios.</li><li>Ganglia.</li><li>Cacti.</li><li>Zenoss.</li><li>CluMon.</li></ul> <p> We can say that many of these tools in turn make grand use of RRDtool in their implementation. CluMon also uses Performance Co-Pilot (PCP) underneath which is also quite popular. xCAT will have support for Ganglia and PCP in a future release. </p> <p> To recap, the lazy Linux cluster admin knows </p> <ul><li>Monitoring doesn't have a one-size-fits-all solution. Monitoring means different things to different people. Some people are interested only in machine alerting, others in performance metrics, others in job profiling, and others just want to know if certain services or applications are running.</li><li>Customization will be different at different sites and on different clusters within the same sites.</li><li>The trade-offs between what is being monitored, what it is used for, and what resources it requires needs to be weighed carefully.</li></ul> <p><a name="N10210"><span class="atitle">8. Control/manage users with a queuing scheduler</span></a></p> <p> The lazy admin knows that users are the root of all problems. Preventing users from having root powers or permissions therefore is extremely important. You can even go further than that: You should do everything you can to keep users off your machine. </p> <p> Queuing systems provide this functionality: A user submits a job and the queuing system decides which nodes it will run on. Unless users are running a job, they should stay off of the machine. </p> <p> Today's popular queuing systems include some pay for products such as: LSF and PBS Pro. These products are used by many commercial customers, as well as government labs and universities. For many systems, plain open source solutions like TORQUE and SLURM work just fine. </p> <p> We do a trick with TORQUE coupled with the Maui scheduler to keep our users off the cluster unless they are running a job. In Linux, this is done by first setting the /etc/security/access.conf file so that only root can login and no one else is allowed. For example, on each node if you run the command: </p> <table border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="code-outline"><pre class="displaycode">echo "-:ALL EXCEPT root:ALL" >>/etc/security/access.conf<br /></pre></td></tr></tbody></table><br /> <p> then only root will be able to log into this machine. Next, you create a TORQUE prologue script that allows the user to login that runs something like this: </p> <table border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="code-outline"><pre class="displaycode">perl -pi -e "s/:ALL$/ $USER:ALL/" /etc/security/access.conf<br /></pre></td></tr></tbody></table><br /> <p> (Hint: The <code>$USER</code> variable is the second variable that is passed to the prologue script by TORQUE when the script runs.) Since the root user runs the prologue script, the user will be allowed to log into the cluster. When the job is completed, an epilogue script is run that removes the user from /etc/security/access.conf so that he can no longer log into the node <code>perl -pi -e "s/ $USER\b//g" /etc/security/access.conf</code>. This prevents users from clobbering each other. </p> <p> We have seen "performance" problems on clusters that have nothing to do with the machine; the real problem is that multiple users run on the same machine and the jobs they run each require 100 percent of the CPU. </p> <p> It's no secret that user management is imperative. But what is often overlooked in simple troubleshooting is that users themselves are creating the problem. We strongly suggest that users be kept off the system unless they enter in through a controlled environment like a resource scheduler. In addition, we urge that the cluster network itself (the gigabit management or user network) be separate from the rest of the corporate or campus WAN with only certain user nodes providing front-in access. </p> <p><a name="N10241"><span class="atitle">9. Benchmark! Find performance problems before they find you</span></a></p> <p> The last thing you want to deal with is a torch-bearing mob threatening to burn down your village because performance is weak and results are incorrect. So keep in mind that all too often, hardware diagnostics are the only litmus tests when determining cluster worthiness, but hardware diagnostics may paint an incomplete picture. </p> <p> Hardware diagnostics are usually pass/fail with a vendor-defined threshold -- your threshold may be higher or lower. If a hardware diagnostic test fails, then you do have a problem; however no failures does not mean there are no problems. </p> <p> Here are some roblems we've encountered that had a measurable impact on performance on with systems that passed vendor diagnostics: </p> <ul><li>Double-bit memory errors.</li><li>Single-bit memory errors.</li><li>SRAM parity errors.</li><li>PCI bus errors.</li><li>Numerical errors.</li><li>Cache errors.</li><li>Disk errors.</li><li>Performance inconsistencies.</li></ul> <p> Often there are problems that have nothing to do with hardware, but with software instead. Applications, libraries, compilers, firmware, and any part of the operating system can be the source many problems undetected by hardware diagnostics. Hardware diagnostics often do not run in the same runtime environment as the applications and do not stress the subsystems the same way as applications -- then problems created by software will be missed. </p> <p> Clearly you need to run some type of relevant workload with your operating environment to verify that your cluster actually can do good work. This can be accomplished by running a few industry-accepted benchmarks. The purpose of benchmarking is not to get the best results but to get consistent, repeatable, accurate results that are also the best results. </p> <p> How do you know if the results are the best results? A cluster can be broken down into the following major subsystems: </p> <ul><li>Memory.</li><li>CPU.</li><li>Disk.</li><li>Network.</li></ul> <p> Your hardware vendor should have benchmark data stating the expected Memory, CPU (FLOPS), Disk, and Network performance. </p> <p><a name="N10287"><span class="smalltitle">How do you know if the results are consistent?</span></a></p> <p> Statistics. Each benchmark is run one or more times per node (or set of nodes for multi-node tests) and then the best representative of each node (or set of nodes) is grouped together and analyzed as a single population. The results are not as interesting as the shape of the distribution of the results. Empirical evidence for all the benchmarks in this article suggests that they should all form a <i>normal distribution</i>. A normal distribution is the classic bell curve that appears so frequently in statistics. It is the sum of smaller, independent (may be unobservable), identically-distributed variables or random events. </p> <p> Benchmarks also have many small independent (may be unobservable) identically-distributed variables that may affect performance, such as: </p> <ul><li>Small competing processes.</li><li>Context switching.</li><li>Hardware interrupts.</li><li>Software interrupts.</li><li>Memory management.</li><li>Process/thread scheduling.</li><li>Cosmic rays.</li></ul> <p> These variable may be unavoidable, but they are a part of the source of a normal distribution. </p> <p> Benchmarks may also have <i>non</i>-identically-distributed observable variables that may affect performance: </p> <ul><li>Large competing processes.</li><li>Memory configuration.</li><li>BIOS version and settings.</li><li>Processor speed.</li><li>Operating system.</li><li>Kernel type (like NUMA vs SMP vs UNI) and version.</li><li>Bad memory (such as excessive ECCs).</li><li>Chipset revisions.</li><li>Hyperthreading or SMT.</li><li>Non-uniform competing processes (such as <code>httpd</code> running on some nodes but not others).</li><li>Shared library versions.</li></ul> <p> These variables are avoidable. Avoidable inconsistencies may lead to multimodal or non-normal distributions and may have a measurable impact on application performance. </p> <p> With a goal of <i>consistent, repeatable, accurate results</i>, it is best to start with as few variables as possible. Start with single node benchmarks like STREAM. If all machines have similar STREAM results, then memory can be ruled out as a factor with other benchmark anomalies. Next, work your way up to processor and disk benchmarks, then two-node (parallel) benchmarks, then multi-node (parallel) benchmarks. After each more complicated benchmark, run a check for consistent, repeatable, accurate results before continuing. </p> <p> In the outline following is a path we recommend (the benchmarks report the performance of the components in <b>bold</b>). </p> <ul><li>Single-node (serial) benchmarks: <ol><li>STREAM (<b>memory MBps</b>)</li><li>NPB Serial (<b>uni-processor FLOPS</b> and memory)</li><li>NPB OpenMP (<b>multi-processor FLOPS</b> and memory)</li><li>HPL MPI Shared Memory (<b>multi-processor FLOPS</b> and memory)</li><li>IOzone (<b>disk MBps</b>, memory, and processor)</li></ol></li><li>Parallel benchmarks (for MPI systems only): <ol><li>Ping-Pong (<b>interconnect microsec</b> and <b>MBps</b>)</li><li>NAS Parallel (<b>multi-node FLOPS</b>, memory, and interconnect)</li><li>HPL MPI Distributed Memory (<b>multi-node FLOPS</b>, memory, and interconnect)</li></ol></li></ul> <p><a name="N1032E"><span class="smalltitle">Wait, that sounds like a lot of work!</span></a></p> <p> It is, but it is also necessary if you plan to be lazy later on. Fortunately we have the tools and documentation to make this easy. A few days upfront planning can save weeks of frustration later on. We'll talk about these tools and graphs in a future article; they will also publish as part of a future xCAT RPM that will greatly increase productivity. </p> <p><a name="N10337"><span class="atitle">10. Manage cluster admin communication</span></a></p> <table align="right" border="0" cellpadding="0" cellspacing="0" width="40%"><tbody><tr><td width="10"><img alt="" src="http://www.ibm.com/i/c.gif" height="1" width="10" /></td><td><table border="1" cellpadding="5" cellspacing="0" width="100%"><tbody><tr><td bgcolor="#eeeeee"> <a name="N10341"><b>Setting up MediaWiki</b></a><br />To set it up, first designate a server to host the Wiki. We usually use the management server if none other is available:<br /> <code>ssh mgmt</code><br /> <br />Now make sure an http server, a mysql server, and php5 are installed. If you were using Red Hat 5.1 or its derivatives you would type:<br /> <code>yum install http mysql php5 mysql-server</code><br /> <br />Next, configure mysql:<br /> <code>service mysqld start<br />mysql_install_db<br />mysqladmin -u root password 'mypasswd'<br /></code> <br />Now install media wiki:<br /> <code>cd /tmp/<br />wget http://download.wikimedia.org/mediawiki/1.13/mediawiki-1.13.0.tar.gz<br />tar zxvf mediawiki-1.13.0.tar.gz<br />mv mediawiki-1.13.0 /var/www/html/wiki<br />chmod a+x /var/www/html/wiki/config</code><br /> <br />Once you make it this far, navigate your Web browser to http://localhost/wiki. You can just follow the menus to install the rest of it.<br /> <br />Once you finish, it will instruct you to do this:<br /> <code>cd /var/www/html/wiki<br />mv config/LocalSettings.php .</code> </td></tr></tbody></table></td></tr></tbody></table> <p> Once you collect information about a system, the information should be stored some place useful so that the rest of the cluster staff can access it easily. We'd like to welcome you to the year 2000 -- documents in Word or Excel are neither cool nor is that the way to do this efficiently. The most productive practice for this we have seen is to set up an internal wiki. This is because the lazy admin gets tired of answering the same questions over and over again. Instead of having to look it up or run some command to give an answer, he simply says: "Check the wiki." And his task is done. </p> <p> Every site should maintain a wiki that contains all the information about the cluster that is generally asked for like: </p> <ul><li>A log of changes to system including when administrative action was performed on the cluster.</li><li>Inventory of cluster: Firmware versions, models, serial numbers, number of nodes in cluster, processor type, memory.</li><li>Links to open support tickets with the vendor and where to get updates.</li><li>Documentation for common tasks using the management software.</li><li>Information on how OS images are created.</li></ul> <p> In short: The wiki should have enough information so that if someone asks a question about the cluster the admin need only say "Check the Wiki." In turn, any time you give someone an answer to something that is not in the wiki, you should tell them they need to pay it forward and right down that knowledge you gave them in the wiki. In addition, it is good for the churn in personal that is the reality of the wild IT world. </p> <p> Why's a wiki better than other forms of documentation? </p> <ul><li>Wiki's are editable at a central place and access control can be given to people who need it. We've seen documents that reside in a share repository, but to view them, one must first navigate to this repository, then save to their hard drive and then open. Ineffective. One link is faster and less frustrating to get to.</li><li>Writing information in a Word document or spreadsheet is static and is not nearly as easy to edit, resave, and send out revisions. Not to mention, we see too many iterations of the same document around and people don't realize if they have the latest version or not. Especially when more than one person is editing it. In effect: Living documents live longer on wikis.</li></ul> <p> Setting up a wiki is extremely easy. We use MediaWiki. It's free, easy to get, and easy to install and configure. (See sidebar.) </p> <p> Wiki syntax is much easier than HTML and there are many useful links on the Web that show how to use it. There are also good extensions that you can get for highlighting code syntax in perl or bash if that is what you use. </p> <p> We find little resistance in organizations when we propose a wiki and hope it makes you lazier by installing one. </p> <p><a name="N103B3"><span class="atitle">11. Look for ways to be lazier</span></a></p> <p> We frequently see people in the cluster business doing things the way they do it because that's the way they've always done it. We think this is a good way for a Linux cluster shop to lose talent and get the least work out of their cluster. Change is the name of the game and new ideas come along frequently. </p> <p> Naturally, we don't expect anyone to be able to investigate every idea that comes their way, but being familiar with newer trends is something that sets apart the good admins from the mediocre ones. Having said that, in this fast moving space, no one can possibly know something about everything and very few know everything about something. But good cluster admins know some things pretty well, have tested even more things, and ask questions about things they haven't heard about. </p> <p> So if someone starts talking about something you haven't heard, the lazy Linux admin will ask a question because he's too lazy to go off afterwards and use his favorite search engine to find information about it. The scariest Linux cluster admins are the types that never ask questions. The lazy Linux cluster admin is not afraid of saying he doesn't know something. He is confident in his skill that if he doesn't know it, then someone else in the room doesn't either. </p> <p> Today, there are great things happening to the world of managing Linux clusters. The most interesting that we have seen are: </p> <ol><li>More of a shift to stateless computing. Makes it easier to administer images and easier to keep nodes in synch.</li><li>Looking at clusters from the data center perspective. This means taking into account power and cooling and the payoff in terms of three or more years as opposed to just acquisition cost.</li><li>Liquid cooling efficiencies as opposed to air cooling. Did you know that liquid cooling is 90 percent more efficient than air cooling?</li><li>Adaptive management. This is where the queuing system is able to provision nodes on demand. This is true cloud computing and we have demonstrated this with Moab and xCAT. This is the final step of the path to <i>complete idleness</i>.</li></ol> <p><a name="N103D8"><span class="atitle">Summary</span></a></p> <p> If this article has done its job, then you should now have ideas for how you can do less work and get better control of your existing Linux cluster environment and plan for your next one. We are confident that the ideas and practices we have set forth in this article contribute to better cluster utilization, a more professional science around it, and leaner and more efficient cluster administrative staff. </p> <p> Having less people and less to problems means less meetings, less work, and more time for <i>WoW</i>, herding goats, sleeping, or doing whatever your lazy pursuits may be. </p> <br /><br /><p><a name="resources"><span class="atitle">Resources</span></a></p><b>Learn</b><br /><ul><li> Tips 8 and 10 from the article "<a href="http://www.ibm.com/developerworks/linux/library/l-10sysadtips/" onmouseover="linkQueryAppend(this)">Lazy Linux: 10 essential tricks for admins</a>" (developerWorks, July 2008) documents several command-line scripting techniques we like to use often.<br /><br /></li><li> See <a href="http://www.ibm.com/developerworks/views/linux/libraryview.jsp?end_no=100&lcl_sort_order=desc&type_by=Articles&sort_order=desc&show_all=false&start_no=1&sort_by=Date&search_by=linux+tip%3A&topic_by=All+topics+and+related+products&search_flag=true&show_abstract=true" onmouseover="linkQueryAppend(this)"> more Linux tips on developerWorks</a>. <br /><br /></li><li> Some of the resources we mentioned in this article: <ul><li><a href="http://www.top500.org/">Top500 Supercomputer sites list</a> has been listing the world's fastest computers since 1993.</li><li>I believe we mentioned the <a href="http://sc07.supercomputing.org/">Supercomputing 2007 conference</a>. (There's at least one of these gems each year.)</li></ul> <br /></li><li> In the <a href="http://www.ibm.com/developerworks/linux/" onmouseover="linkQueryAppend(this)">developerWorks Linux zone</a>, find more resources for Linux developers (including developers who are <a href="http://www.ibm.com/developerworks/linux/newto/?S_TACT=105AGX03&S_CMP=ART" onmouseover="linkQueryAppend(this)">new to Linux</a>), and scan our <a href="http://www.ibm.com/developerworks/linux/library/l-top-10.html" onmouseover="linkQueryAppend(this)">most popular articles and tutorials</a>.<br /><br /></li><li> See all <a href="http://www.ibm.com/developerworks/views/linux/libraryview.jsp?topic_by=All+topics+and+related+products&sort_order=desc&lcl_sort_order=desc&search_by=linux+tip%3A&search_flag=true&type_by=All+Types&show_abstract=true&start_no=1&sort_by=Date&end_no=100&show_all=false" onmouseover="linkQueryAppend(this)"> Linux tips</a> and <a href="http://www.ibm.com/developerworks/views/linux/libraryview.jsp?topic_by=All+topics+and+related+products&sort_order=desc&lcl_sort_order=desc&search_by=&search_flag=&type_by=Tutorials&show_abstract=true&sort_by=Date&end_no=100&show_all=false" onmouseover="linkQueryAppend(this)"> Linux tutorials</a> on developerWorks. <br /><br /></li><li> Stay current with <a href="http://www.ibm.com/developerworks/offers/techbriefings/" onmouseover="linkQueryAppend(this)">developerWorks technical events and Webcasts</a>. <br /><br /></li></ul><br /><b>Get products and technologies</b><br /><ul><li> Here's where to get some of the resources we mentioned in this article: <ul><li><a href="http://www.rocksclusters.org/wordpress/?page_id=57">Rocks</a> is an open-source Linux cluster distribution that enables end users to easily build computational clusters, grid endpoints, and visualization tiled-display walls. The group has one goal: Make clusters easy.</li><li><a href="http://svn.oscar.openclustergroup.org/trac/oscar">OSCAR</a> (Open Source Cluster Application Resources) lets users, regardless of their experience level with a *NIX environment, install a Beowulf-type HPC cluster.</li><li><a href="http://www.perceus.org/portal/project/perceus">Perceus</a> is the next generation of enterprise and cluster provisioning toolkit created by the developers of Warewulf.</li><li><a href="http://xcat.sourceforge.net/">xCAT</a> (eXtreme Cluster Administration Toolkit) is a scalable distributed computing management and provisioning tool that provides a unified interface for hardware control, discovery, and OS diskful/diskfree deployment.</li><li><a href="http://www.nagios.org/">Nagios</a> is a host and service monitor designed to inform you of network problems before your clients, users, or managers do -- it was designed for Linux but works fine under most *NIX variants.</li><li><a href="http://ganglia.info/">Ganglia</a> is a scalable distributed monitoring system for HPC clusters and grids that is based on a hierarchical design targeted at federations of clusters.</li><li><a href="http://www-rcf.usc.edu/%7Egarrick/perl-PBS/">pbstop</a> is an ncurses monitoring and admin tool distributed inside perl-PBS (Portable Batch System) and is used by the admins of the largest clusters in the world.</li><li><a href="http://www.clusterresources.com/pages/products/torque-resource-manager.php">TORQUE</a> is an open source resource manager providing control over batch jobs and distributed compute nodes, a community effort based on the original *PBS project.</li><li><a href="http://www.cacti.net/">Cacti</a> is a complete network graphing solution designed to harness the power of RRDTool's data storage and graphing functionality; it includes a fast poller, advanced graph templating, multiple data acquisition methods, and user management features out of the box.</li><li><a href="http://www.zenoss.com/">Zenoss</a> delivers commercial open source IT management solutions.</li><li><a href="http://clumon.ncsa.uiuc.edu/">CluMon</a> is a cluster monitoring system developed at the National Center for Supercomputing Applications to keep track of its Linux super-clusters; it is a tunable system that can be made to work for almost any set of Linux machines.</li><li><a href="http://oss.oetiker.ch/rrdtool">RRDtool</a> is an open source, high performance data logging and graphing system for time series data.</li><li><a href="http://oss.sgi.com/projects/pcp/">Performance Co-Pilot</a> provides a framework and services to support system-level performance monitoring and performance management; SGI provided an open source version in 2000.</li><li><a href="https://computing.llnl.gov/linux/slurm/">SLURM</a>, the "highly scalable resource manager" (and a popular worm-based soft drink on the cartoon <i>Futurama</i>), is an open-source resource manager designed for Linux clusters of all sizes that provides three key functions -- it allocates exclusive and/or non-exclusive access to resources; it provides a framework for starting, executing, and monitoring work on a set of allocated nodes; and it arbitrates contention for resources by managing a queue of pending work.</li><li><a href="http://www.clusterresources.com/pages/products/moab-cluster-suite/workload-manager.php">Moab Workload Manager</a> is a policy-based job scheduler and event engine that enables utility-based computing for clusters.</li></ul> <br /></li><li> <a href="http://www.ibm.com/developerworks/offers/sek/" onmouseover="linkQueryAppend(this)">Order the SEK for Linux</a>, a two-DVD set containing the latest IBM trial software for Linux from DB2®, Lotus®, Rational®, Tivoli®, and WebSphere®. <br /><br /></li><li> With <a href="http://www.ibm.com/developerworks/downloads/" onmouseover="linkQueryAppend(this)">IBM trial software</a>, available for download directly from developerWorks, build your next development project on Linux. <br /><br /></li></ul><br /><b>Discuss</b><br /><ul><li> Get involved in the <a href="http://www.ibm.com/developerworks/community" onmouseover="linkQueryAppend(this)"> developerWorks community</a> through blogs, forums, podcasts, and spaces. </li></ul><br /><br /><p><a name="author"><span class="atitle">About the authors</span></a></p><table border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td colspan="3"><img alt="" src="http://www.ibm.com/i/c.gif" height="5" width="100%" /></td></tr><tr align="left" valign="top"><td><br /></td><td><img alt="" src="http://www.ibm.com/i/c.gif" height="5" width="4" /></td><td width="100%"><p>Vallard Benincosa is a lazy Linux Certified IT professional working for the IBM Linux Clusters team. He lives in Portland, OR, with his wife and two kids.</p></td></tr></tbody></table><br /><table border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td colspan="3"><img alt="" src="http://www.ibm.com/i/c.gif" height="5" width="100%" /></td></tr><tr align="left" valign="top"><td><br /></td><td><img alt="" src="http://www.ibm.com/i/c.gif" height="5" width="4" /></td><td width="100%"><p>Egan Ford started building Web and HPC Linux clusters in 1999 and was the chief architect for IBM's first large HPC cluster (Los Lobos at the University of New Mexico). Since then Egan has led in the design and implementation of some of IBM's largest systems including AIST, LANL Roadrunner, and the US National Science Foundation Teragrid (teragrid.org). Egan is the creator of IBM's first cluster management solution (xCAT) and co-author of two IBM RedBooks on Linux HPC.</p></td></tr></tbody></table><br /><br /></td></tr></tbody></table><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7336462756272110356-1147788112649891553?l=www.adminlinux.org'/></div>bighandsbirdhttp://www.blogger.com/profile/10204317846080625082Bighandsbird@gmail.com0tag:blogger.com,1999:blog-7336462756272110356.post-45323595392286562682008-10-30T16:20:00.000-07:002008-10-30T16:22:48.752-07:00Enable Commercial DVD Playback in Ubuntu<!-- adsense above title --> <h1 style="font-weight: normal;"><span style="font-size:130%;"><br /></span></h1><script type="text/javascript"><!-- google_ad_client = "pub-7173089726102791"; //tombuntu1_banner google_ad_slot = "4568130930"; google_ad_width = 468; google_ad_height = 60; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <p><span style="font-size:130%;">Like Adobe Flash and proprietary media formats, playback of encrypted DVDs is something that Ubuntu can’t distribute in the default desktop. Adding support for playing your commercial DVD videos in Ubuntu isn’t a difficult task.</span></p> <p><span style="font-size:130%;">There’s a script included in Ubuntu that can install software for decrypting DVDs, run it by pasting the line below into your terminal:<br /><code>sudo /usr/share/doc/libdvdread3/install-css.sh</code></span></p> <p><span style="font-size:130%;">If all went well, that script should have downloaded and installed the <em>libdvdcss2</em></span> package for you. </p> <p><span style="font-size:130%;">Whenever you insert a DVD, the Totem Movie Player should launch and begin playing the disk. Unfortunately, Totem makes a really poor DVD player as it does not support DVD menus. It’s possible to install a different back-end for Totem to play DVD menus, but I just like to use the VLC media player instead. I’ve found that VLC does a fantastic job with DVDs.</span></p> <p><span style="font-size:130%;">Install VLC from the package <a href="apt:vlc">vlc</a> (click the link to install), or by running the command below in your terminal:<br /><code>sudo apt-get install vlc</code></span></p> <p><span style="font-size:130%;">Open VLC from <em>Applications->Sound & Video->VLC media player</em>. To play a DVD, click <em>File->Open Disk</em>. </span></p> <p><span style="font-size:130%;"><img src="http://tombuntu.com/wp-content/uploads/2008/05/vlcdvdplayback.jpg" alt="VLC disk dialog" /></span></p> <p><span style="font-size:130%;">There’s a lot of options in this dialog, just make sure the disk type is set to <em>DVD (menus)</em>, click <em>OK</em>, and the movie should begin to play.</span></p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7336462756272110356-4532359539228656268?l=www.adminlinux.org'/></div>bighandsbirdhttp://www.blogger.com/profile/10204317846080625082Bighandsbird@gmail.com0tag:blogger.com,1999:blog-7336462756272110356.post-18928291728557352102008-10-29T16:44:00.000-07:002008-10-30T16:45:45.402-07:00Mount ISO files in Linux<h4>It is convenient to mount an ISO file directly instead of burning it to a CD first. This recipe describes the command used to mount an ISO image on a Linux system.</h4> <p><span id="more-857"></span><br />To mount the ISO image file.iso to the mount point /mnt/test use this command:</p> <p><code>mount -o loop -t iso9660 file.iso /mnt/test</code></p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7336462756272110356-1892829172855735210?l=www.adminlinux.org'/></div>bighandsbirdhttp://www.blogger.com/profile/10204317846080625082Bighandsbird@gmail.com0tag:blogger.com,1999:blog-7336462756272110356.post-84717109604031120632008-08-21T03:10:00.000-07:002008-09-16T03:41:20.409-07:00How to Install Shake on Ubuntu 8.0.4The problem is a missing x11 library that is not included with <span class="highlight">hardy</span>, but is found in recent suse and fedora distros - and so we'll take the library from an extracted fedora *rpm file, <a href="ftp://195.220.108.108/linux/fedora/releases/7/Everything/i386/os/Fedora" target="_blank">libX11-1.0.3-8.fc7.i386.rpm</a><br /><ol style="list-style-type: decimal;"><li>download the file <a href="ftp://195.220.108.108/linux/fedora/releases/7/Everything/i386/os/Fedora/libX11-1.0.3-8.fc7.i386.rpm" target="_blank">libX11-1.0.3-8.fc7.i386.rpm</a></li><li>install the 'alien' rpm conversion utility</li><li>extract the rpm file</li><li>locate libX11.so.6.2.0 and copy to the lib directory used by <span class="highlight">shake</span></li><li>rename your moved copy of 'libX11.so.6.2.0' <i>to</i> 'libX11.so.6'<ul><li>if you are running <span class="highlight">shake</span> from the original directory that was created from the software's extraction, then the lib directory is found in the <span class="highlight">shake</span> directory</li><li>(~./shake*/lib/)</li></ul></li><li>if you are using <span class="highlight">shake</span> 4.1, then you should be able to run <span class="highlight">shake</span></li></ol><br /><h3>Instructions for Installing RPM Files Using Alien</h3> <h4>Installing Alien</h4> <p>You can install alien itself from the Ubuntu <em>Universe</em> repository by adding the repository to your list of sources and doing:<br /><code><br />$sudo apt-get update<br />$sudo apt-get install alien<br /></code></p> <h4>Installing the .rpm file</h4> <p>To install the .rpm file, you first need to convert it to a .deb file which can be installed on Ubuntu.<br />I assume that you downloaded the package to your Desktop (~/Desktop is the directory)<br />You can convert the .rpm to a .deb by using the following commands.<br /><code>$cd ~/Desktop</code><br />-This will change the directory to your desktop, where you have the .rpm file.</p> <p><code>$sudo alien -k name-of-rpm-file.rpm</code><br />- This will convert the .rpm to a .deb.<br />- The “-k” will keep the version number. Otherwise alien adds a “1″ to the version number.<br />- Tip: Use <a href="http://ubuntu.wordpress.com/2006/01/28/turn-on-bash-smart-completion/">Smart Tab Completion</a> to avoid mistyping the file names <img src="http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /> </p> <p><code>$sudo dpkg -i name-of-deb-file.deb</code><br />- This will install the .deb package</p> <p>Try reading the alien manpage for more details on how to convert other kinds of packages and the options available.</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7336462756272110356-8471710960403112063?l=www.adminlinux.org'/></div>bighandsbirdhttp://www.blogger.com/profile/10204317846080625082Bighandsbird@gmail.com1tag:blogger.com,1999:blog-7336462756272110356.post-82818402962212517592008-07-21T14:46:00.000-07:002008-07-21T14:47:12.315-07:00Google talk onyour Iphone<script src="http://www.gmodules.com/ig/ifr?url=http://www.google.com/ig/modules/googletalk.xml&synd=open&w=320&h=451&title=__MSG_title__&lang=en&country=US&border=%23ffffff%7C3px%2C1px+solid+%23999999&output=js"></script><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7336462756272110356-8281840296221251759?l=www.adminlinux.org'/></div>bighandsbirdhttp://www.blogger.com/profile/10204317846080625082Bighandsbird@gmail.com0tag:blogger.com,1999:blog-7336462756272110356.post-75035326278186407692008-07-19T13:59:00.000-07:002008-07-19T14:00:25.126-07:00iPhone 3G gets 50 per cent O2 Wi-Fi boost<h3>Over 3,000 more Wi-Fi hotspots will be accessible to O2 iPhone users from July 11 following a deal with BT Openzone</h3> <blockquote>"The agreement with BT Openzone, along with O2's existing arrangements with The Cloud, will give all iPhone users 'unlimited' access to over 9,000 public Wi-Fi hotspots"</blockquote> <span class="body"><p>O2 iPhone customers will be have free access to 50 per cent more public Wi-Fi hotspots from 11 July, launch day for the <a href="http://www.knowyourmobile.com/blog/64708/apple_iphone_3g_available_free_from_o2.html" target="_blank">iPhone 3G</a>.</p><p>O2 has signed a deal with BT Openzone to give iPhone customers access to more than 3,000 BT Openzone Wi-Fi hotspots across the UK as part of their standard iPhone data package.</p><p>The agreement with BT Openzone, along with O2's existing arrangements for access to The Cloud's Wi-Fi network, will give all iPhone users 'unlimited' access to over 9,000 public Wi-Fi hotspots. </p><p>The deal covers existing iPhone users as well as iPhone 3G buyers, with either device automatically switching to the fastest network available when in range of The Cloud or BT Openzone hotspots. Users can download content or browse the web from their iPhone as much as they want at no extra cost - subject to O2's excessive use policy. </p><p>The BT Openzone covers a variety of UK locations including 13 BT wireless city centres, coffee shops, railway stations, airport lounges, motorway service stations and marinas.</p></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7336462756272110356-7503532627818640769?l=www.adminlinux.org'/></div>bighandsbirdhttp://www.blogger.com/profile/10204317846080625082Bighandsbird@gmail.com0tag:blogger.com,1999:blog-7336462756272110356.post-50495529177177368412008-07-17T08:15:00.000-07:002008-07-17T09:07:12.108-07:00Is my life about to change?<strong>Does destiny exist?.</strong><br /><strong></strong><br />Hi there,<br /><br />I have been interested in Linux for a while now, installing, configuring, crying etc...<br />Last week when I was job Hunting, I found the perfect position to apply for "Linux technician"<br />Red hat, Apache Mysql etc but the most important the willing to learn ..... well thats me me me I thought.<br /><br />I sent them my CV and after a couple of days they called me !!!!! I was so excited.<br /><br /><strong>The interview.</strong><br /><br />I woke up and I wasn't nervous usually is really stressing to attend an interview but not this time.<br /><br />The place was great Pictures of Animated caracters hanging in the wall, you could breathe art and harmony in there, the interviewer was great not intimidating at all he just wanted to interview me, with out any psichological torture.<br /><br />Well the interview was 90% OK now the destiny bit .......<br /><br />When I was walking inside the underground I saw some posters on the wall saying "Big Decissions are beign made around you"......<br />I thought that was hilarious but wait there is more "how can we make that happen..." very interesting after attending an interview.<br /><br />Today I woke up and in my way to the bus, I saw a van with a message containing the name of !!the company I applyed for ....... th van was from a diferent company!!<br /><br />Good interview, Good signs will I get my dream Job, are this coincidence or my life is about to change.........<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7336462756272110356-5049552917717736841?l=www.adminlinux.org'/></div>bighandsbirdhttp://www.blogger.com/profile/10204317846080625082Bighandsbird@gmail.com0tag:blogger.com,1999:blog-7336462756272110356.post-53851444636907135242008-07-11T15:22:00.000-07:002008-07-11T15:23:39.764-07:00Essential Math for Games Programmers<h2><span style="color:#667766;">Current Description</span></h2> <div class="Section1"> <p>As the visual quality of games has improved, more attention has been given to other aspects of a game to increase the feeling of reality during gameplay and distinguish it from its competitors. One of the most rapidly growing fields is physical simulation, as shown by discussion boards, the latest games, and a recent burst of articles and papers. Creating such a simulation may appear to be a daunting task, but given the right background it is not too difficult, and can add a great deal of realism to animation systems, and interactions between avatars and the world. </p> <p>This tutorial deepens the approach of the previous years' Essential Math for Games Programmers, by focusing in on this topic of physical simulation. It, like the previous tutorial, provides a toolbox of techniques for programmers interested in creating physics engines, with references and links for those looking for more information. The focus of the course is to study the simulation pipeline and show how problems along the way can be solved and optimized using standard 3D mathematical concepts and engineering know-how. </p> <p>Topics include rigid body dynamics, verlet and implicit integration methods, constraint systems, collision detection, collision response, rag doll and IK systems. Potential special topics include dynamic destruction, fluid dynamics and using GPUs to improve simulation performance. Sample code libraries and examples are provided. </p> <a name="currentmaterials"></a> <h2><span style="color:#667766;">Current Materials</span></h2> <h3><span style="color:#667766;">Slides</span></h3> <p>Fully updated versions of the slides and sample code used to present the tutorial at GDC 2008 are as follows:</p> <blockquote> <div class="Section1"> <p><a href="http://www.essentialmath.com/GDC2008/01_GDC08_Eiserloh_Squirrel_PhysicsOverview.ppt">Problem Overview</a> (Squirrel Eiserloh)<br /> <a href="http://www.essentialmath.com/GDC2008/02_GDC08_Marq_Dynamics.ppt">Dynamics 101</a> (Marq Singer)<br /> <a href="http://www.essentialmath.com/GDC2008/03_GDC08_Marq_Integration.ppt">Numeric Integration Methods</a> (Marq Singer)<br /> <a href="http://www.realtimecollisiondetection.net/pubs/GDC08_Ericson_Physics_Tutorial_Numerical_Robustness.ppt">Numerical Robustness (for Geometric Computations)</a> (Christer Ericson)<br /> <a href="http://www.essentialmath.com/GDC2008/05_GDC08_Eiserloh_Squirrel_PhysicsReframing.ppt">Reframing the Problem</a> (Squirrel Eiserloh)<br /> <a href="http://www.realtimecollisiondetection.net/pubs/GDC08_Ericson_Physics_Tutorial_SAT.ppt">Collisions using separating-axis tests</a> (Christer Ericson)<br /> <a href="http://www.dtecta.com/papers/gdc2008_vandenBergen_Gino_Physics_Tut.ppt">Collision Detection</a> (Gino van den Bergen)<br /> <a href="http://www.gphysics.com/files/GDC08_Catto_Erin_PhysicsTutorial.zip">Modelling and Solving Constraints</a> (Erin Catto)<br /> <a href="http://www.essentialmath.com/tutorial.htm">Physics Parallelization</a> (Erwin Coumans)<br /> <a href="http://www.essentialmath.com/GDC2008/10_GDC08_VanVerth_GPUPhysics.ppt">GPU Physics</a> (Marq Singer)</p> </div> </blockquote> <p>See below for further materials from past years that may be useful. The code samples in particular contain code for simple dynamics and collision.</p> <h2><span style="color:#667766;">Past Materials</span></h2> <p>Fully updated versions of the slides and sample code used to present the tutorial at GDC 2007 are as follows:</p> <blockquote> <div class="Section1"> <p><a href="http://www.essentialmath.com/GDC2007/1_GDC2007_Eiserloh_Squirrel_PhysicsOverview.ppt">Problem Overview</a> (Squirrel Eiserloh)<br /> <a href="http://www.essentialmath.com/GDC2007/2_GDC2007_JMV_Dynamics.ppt">Dynamics 101</a> (Jim Van Verth)<br /> <a href="http://www.essentialmath.com/GDC2007/3_GDC2007_JMV_Integration.ppt">Numeric Integration Methods</a> (Jim Van Verth)<br /> <a href="http://www.realtimecollisiondetection.net/pubs/GDC07_Ericson_Physics_Tutorial_Numerical_Robustness.ppt">Numerical Robustness (for Geometric Computations)</a> (Christer Ericson)<br /> <a href="http://www.essentialmath.com/GDC2007/5_GDC2007_Eiserloh_Squirrel_PhysicsReframing.ppt">Reframing the Problem</a> (Squirrel Eiserloh)<br /> <a href="http://www.realtimecollisiondetection.net/pubs/GDC07_Ericson_Physics_Tutorial_SAT.ppt">Collisions using separating-axis tests</a> (Christer Ericson)<br /> <a href="http://www.dtecta.com/papers/gdc2007_vandenBergen_Gino_Physics_Tut.pps">Collision Detection</a> (Gino van den Bergen)<br /> <a href="http://www.gphysics.com/files/GDC2007_ErinCatto.zip">Modelling and Solving Constraints & Contact Manifolds</a> (Erin Catto)<br /> <a href="http://www.essentialmath.com/GDC2007/10_GDC2007_Marq_SoftBody.ppt">Soft Body</a> (Marq Singer)<br /> <a href="http://www.essentialmath.com/GDC2007/11_GDC2007_Marq_Destruction.ppt">Destruction</a> (Marq Singer)<br /> <a href="http://www.essentialmath.com/GDC2007/12_GDC2007_Marq_Squishing_and_Sound.ppt">Squishing and Sound</a> (Marq Singer)</p> </div> </blockquote> <p>Fully updated versions of the slides and sample code used to present the tutorial at GDC 2006 are as follows:</p> <blockquote> <div class="Section1"> <p><a href="http://www.essentialmath.com/0_Intro_Physics_Tut.pps">Introduction</a> (Jim Van Verth)<br /> <a href="http://www.essentialmath.com/1_GDC2006_JMV_Physics_Tut.pps">Dynamics 101</a> (Jim Van Verth)<br /> <a href="http://realtimecollisiondetection.net/pubs/GDC06_Ericson_Physics_Tutorial_Numerical_Robustness.ppt">Numerical Robustness (for Geometric Computations)</a> (Christer Ericson)<br /> <a href="http://www.eiserloh.net/gdc2006_Eiserloh_Squirrel_PhysicsTutorial.ppt">Motion and Collision - It's All Relative</a> (Squirrel Eiserloh)<br /> <a href="http://www.dtecta.com/gdc2006/gdc2006_vandenBergen_Gino_Physics_Tut.ppt">Continuous Collision Detection</a> (Gino van den Bergen)<br /> <a href="http://www.gphysics.com/?page_id=16">Fast and Simple Physics using Sequential Impulses</a> (Erin Catto)<br /> <a href="http://www.essentialmath.com/6_GDC2006_Singer_Marq_PhysicsTutorial.pps">Bending, Breaking and Squishing Stuff</a> (Marq Singer)</p> </div> </blockquote> <p>For those slides in PowerPoint Show format, the original PowerPoint materials are also available upon request. </p> <p>In past years this tutorial was more general, providing a toolbox of techniques for programmers interested in improving their 3D background. The focus of the course was to follow the rendering and dynamics pipelines and show how problems along the way can be solved and optimized using 3D mathematical concepts. The following PowerPoint Show files and PDFs have been collated from all six years of the tutorial and organized by subject. They provide background material for those who are interested in the basics of 3D math and programming. The original PowerPoint materials are also available upon request.</p> <h3><span style="color:#667766;">Core Mathematics</span></h3> </div> <blockquote> <div class="Section1"> <p><a href="http://www.essentialmath.com/Vectors.pps">Vectors and Points, Lines and Planes</a> (pps)<br /> <a href="http://www.essentialmath.com/Matrices.pps">Linear Transformations and Matrices</a> (pps)<br /> <a href="http://www.essentialmath.com/AffineXforms.pps">Affine Transformations</a> (pps)<br /> <a href="http://www.essentialmath.com/FixedFloat.pps">Fixed Point and Floating Point</a> (pps)</p> </div> </blockquote> <div class="Section1"> <h3><span style="color:#667766;">Rendering</span></h3> </div> <blockquote> <div class="Section1"> <p><a href="http://www.essentialmath.com/3DPipeline.pps">Introduction to the 3D Pipeline and Scene Graphs</a> (pps)<br /> <a href="http://www.essentialmath.com/Viewing.pps">Viewing, Projecting and Picking</a> (pps)<br /> <a href="http://www.essentialmath.com/Rasterization.pps">Rasterization, Lighting and Texturing</a> (pps)<br /> </p> </div> </blockquote> <div class="Section1"> <h3><span style="color:#667766;">Animation</span></h3> </div> <blockquote> <div class="Section1"> <p><a href="http://www.essentialmath.com/Curves.pps">Curves and Interpolating Position</a> (pps)<br /> <a href="http://www.essentialmath.com/Quaternions.pps">Quaternions and Interpolating Orientation</a> (pps)</p> </div> </blockquote> <div class="Section1"> <h3><span style="color:#667766;">Simulation</span></h3> </div> <blockquote> <div class="Section1"> <p><a href="http://www.essentialmath.com/RigidBodyDynamics.pps">Rigid Body Dynamics</a> (pps)<br /> <a href="http://www.essentialmath.com/Integrators.pps">Numeric Integration</a> (pps)<br /> <a href="http://www.essentialmath.com/Constraints.pps">Constraints</a> (pps)<br /> <a href="http://www.essentialmath.com/InverseKinematics.pps">Inverse Kinematics</a> (pps)<br /> <a href="http://www.essentialmath.com/CollisionDetection.pps">Collision Detection</a> (pps)<br /> <a href="http://www.essentialmath.com/CollisionResponse.pps">Collision Response</a> (pps)<br /> <a href="http://www.essentialmath.com/AngularImpulse.pdf">Deriving the Angular Response Equation</a> (pdf)</p> </div> </blockquote> <h3><span style="color:#667766;">Demo Code</span></h3> <p>This collection of demo code is from the GDC 2005 presentation, and covers many of the topics listed above. The following archive has all the files you need to compile and run the demo code on Windows. You will need at least Microsoft Visual Studio 6. They should transfer to Microsoft Visual .NET with no trouble.<br /> <a href="http://www.essentialmath.com/Samples.zip">Windows 2000/XP Source</a></p> <p>In the past we have supported the Mac, but at the moment none of us have a working machine much less one with MacOS X. The following files are provided for historical purposes only, and are no longer supported. You will need Codewarrior 6, at least MacOS 8, and the OpenGL SDK.<br /> <a href="http://www.essentialmath.com/Samples.sit">MacOS 8/9 Source</a></p> <p>The copyright on these files is held by Red Storm Entertainment and Ubisoft. You can use them for personal purposes, but cannot redistribute them in source or binary form. No warranty is implied; use at your own risk. </p> <p>For more polished code and demos with a less restictive license allowing them to be used in game development, and that can be compiled with non-Microsoft compilers, MacOS X, and Linux, please purchase a copy of our <a href="http://www.essentialmath.com/book.htm">book</a>.</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7336462756272110356-5385144463690713524?l=www.adminlinux.org'/></div>bighandsbirdhttp://www.blogger.com/profile/10204317846080625082Bighandsbird@gmail.com1tag:blogger.com,1999:blog-7336462756272110356.post-70183907222040200162008-07-11T15:03:00.000-07:002008-07-11T15:06:08.189-07:00Mathematics for Information Technology<!-- InstanceEndEditable --><span style="font-weight: bold;">For more info Visit<a href="http://www.maths.gla.ac.uk/research/groups/it/"> http://www.maths.gla.ac.uk/research/groups/it/</a><br /><br /><br /></span>Research in Mathematics for Information Technology <!-- InstanceBeginEditable name="body" --> <p style="margin-top: 0pt;">Mathematics for IT is a 'cross-cultural' group, having connections with various mathematical areas including Computer Science. Our work has mainly involved: (1) error-correcting codes that change according to the degree of interference through which the message stream passes; (2) the mathematics of computer graphics; (3) polynomials over finite fields which have important applications in aspects of information technology such as communications and secrecy; (4) the use of fractals in representing nature, and in image compression and reconstruction, (5) neural networks, (6) mathematics (especially cellular automata) and music </p> <h4>Contacts </h4> <p><a href="http://www.maths.gla.ac.uk/people/?id=32">Professor S D Cohen </a>: Applications of Finite Fields<br /> <a href="http://www.maths.gla.ac.uk/people/?id=40">Dr S G Hoggar </a>: Fractal Compression </p> <h4>Recent Theses </h4> <ol><li>"<em>Jigsaws and Faster Fractal Pictures </em>" by Lindsey Menzies </li><li><em>"Weight Enumerators and Weight Distribution of KM Codes" </em> by Keith Pickavance</li><li>"<em>Prediction of Earthquakes </em>" by Euan Fraser</li><li><em>"Applications of Dynamical Systems to Music Composition </em>" by Kenneth McAlpine </li><li>"<em>M-sequences related to the multifocal electroretinogram: identification of primitive polynomials to avoid cross-contamination in mutlifocal electroretinogram responses </em>" by Jill Ireland </li><li>"<em>LVQ and Kohonen nets as human, for comparing ASM generated faces </em>" by Hataikin Porncharoensin </li></ol><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7336462756272110356-7018390722204020016?l=www.adminlinux.org'/></div>bighandsbirdhttp://www.blogger.com/profile/10204317846080625082Bighandsbird@gmail.com0