Friday, February 15, 2008

Network File Copy using SSH

Push: Push local file to remote server.
Pull: Pull remote file from remote server to local machine.


PUSH:

  • tar cvf - . | gzip -c -1 | ssh user@host cat ">" remotefile.gz
  • ssh target_address cat <localfile ">" remotefile
  • ssh target_address cat <localfile - ">" remotefile
  • cat localfile | ssh target_address cat ">" remotefile
  • cat localfile | ssh target_address cat - ">" remotefile
  • dd if=localfile | ssh target_address dd of=remotefile
  • ssh target_address cat <localfile "|" dd of=remotefile
  • ssh target_address cat - <localfile "|" dd of=remotefile
  • ( cd SOURCEDIR && tar cf - . ) | ssh target_address "(cd DESTDIR && tar xvpf - )"
  • ( cd SOURCEDIR && tar cvf - . ) | ssh target_address "(cd DESTDIR && cat - > remotefile.tar )"
  • ( cd SOURCEDIR && tar czvf - . ) | ssh target_address "(cd DESTDIR && cat - > remotefile.tgz )"
  • ( cd SOURCEDIR && tar cvf - . | gzip -1 -) | ssh target_address "(cd DESTDIR && cat - > remotefile.tgz )"
  • ssh target_address "( nc -l -p 9210 > remotefile & )" && cat source-file | gzip -1 - | nc target_address 9210
  • cat localfile | gzip -1 - | ssh target_address cat ">" remotefile.gz


PULL:
  • ssh target_address cat remotefile > localfile
  • ssh target_address dd if=remotefile | dd of=localfile
  • ssh target_address cat "<" remotefile >localfile
  • ssh target_address cat "<" remotefile.gz | gunzip >localfile

  • COMPARE:

  • ###This one uses CPU cycles on the remote server to compare the files:
  • ssh target_address cat remotefile | diff - localfile
  • cat localfile | ssh target_address diff - remotefile
  • ###This one uses CPU cycles on the local server to compare the files:
  • ssh target_address cat <localfile "|" diff - remotefile
  • Wednesday, February 13, 2008

    Computer cluster

    A computer cluster is a group of loosely coupled computers that work together closely so that in many respects they can be viewed as though they are a single computer। The components of a cluster are commonly, but not always, connected to each other through fast local area networks। Clusters are usually deployed to improve performance and/or availability over that provided by a single computer, while typically being much more cost-effective than single computers of comparable speed or availability.



    High-availability (HA) clusters

    High-availability clusters (also known as failover clusters) are implemented primarily for the purpose of improving the availability of services which the cluster provides. They operate by having redundant nodes, which are then used to provide service when system components fail. The most common size for an HA cluster is two nodes, which is the minimum requirement to provide redundancy. HA cluster implementations attempt to manage the redundancy inherent in a cluster to eliminate single points of failure.

    There are many commercial implementations of High-Availability clusters for many operating systems। The Linux-HA project is one commonly used free software HA package for the Linux OSs.


    Load-balancing clusters

    Load-balancing clusters operate by having all workload come through one or more load-balancing front ends, which then distribute it to a collection of back end Platform LSF HPC, Sun Grid Engine, Moab Cluster Suite and Maui Cluster Scheduler। The Linux Virtual Server project provides one commonly used free software package for the Linux OS.



    Technologies


    MPI is a widely-available communications library that enables parallel programs to be written in C, Fortran, Python, OCaml, and many other programming languages.

    The GNU/Linux world sports various cluster software; for application clustering, there is Beowulf, distcc, and MPICH. Linux Virtual Server, Linux-HA - director-based clusters that allow incoming requests for services to be distributed across multiple cluster nodes. MOSIX, openMosix, Kerrighed, OpenSSI are full-blown clusters integrated into the kernel that provide for automatic process migration among homogeneous nodes. OpenSSI, openMosix and Kerrighed are single-system image implementations.

    Microsoft Windows Compute Cluster Server 2003 based on the Windows Server platform provides pieces for High Performance Computing like the Job Scheduler, MSMPI library and management tools. NCSA's recently installed Lincoln is a cluster of 450 Dell PowerEdge™ 1855 blade servers running Windows Compute Cluster Server 2003. This cluster debuted at #130 on the Top500 list in June 2006.

    DragonFly BSD, a recent fork of FreeBSD 4.8, is being redesigned at its core to enable native clustering capabilities. It also aims to achieve single-system image capabilities.





    Google

    Google Inc. (NASDAQ: GOOG and LSE: GGEA) is an American public corporation, earning revenue from online advertising related to its Internet search, web-based e-mail, online mapping, office productivity, and video sharing as well as selling advertising-free versions of the same technologies. Google's headquarters, the Googleplex, is located in Mountain View, California, and the company has 16,805 full-time employees (as of December 31, 2007).

    Google was co-founded by Larry Page and Sergey Brin while they were students at Stanford University and the company was first incorporated as a privately held company on September 7, 1998. Google's initial public offering took place on August 19, 2004, raising US$1.67 billion, making it worth US$23 billion. Google has continued its growth through a series of new product developments, acquisitions, and partnerships. Environmentalism, philanthropy, and positive employee relations have been important tenets during Google's growth, the latter resulting in being identified multiple times as Fortune Magazine's #1 Best Place To Work.The company's unofficial slogan is "Don't be evil, however Google is not without controversy related to its business practices ; there are concerns regarding the privacy of personal information, copyright, censorship, and discontinuation of services.

    Wednesday, February 6, 2008

    RAID for Enterprise Computing

    RAID has become commonplace in server computing environments. Today, most disk subsystems incorporate RAID technology to enhance their I/O performance and data availability. Software, or host-based RAID is also available from several vendors, including VERITAS. System administrators, application designers, and others responsible for implementing their organizations’ storage strategies are faced with a number of choices. This paper outlines the basics of RAID technology, describes the advantages of the various RAID alternatives, and lists other considerations in developing technical strategies for enterprise storage.


    What’s in a Name?

    RAID is an acronym for Redundant Array of Independent Disks:
    • Redundant means that part of the disks’ storage capacity is used to store check data that can be used to recover user data if a disk containing it should fail.
    • Array means that a collection of disks are managed by control software that presents their capacity to applications as a set of coordinated virtual disks. In host based arrays, the control software runs in a host computer. In controller based arrays, the control software runs in a disk controller.
    • Independent means that the disks are perfectly normal disks that could function independently of each other.
    • Disks means that the storage devices comprising the array are on-line storage. In particular, unlike most tapes, disk write operations specify precisely which blocks are to be written, so that a write operation can be repeated if it fails.

    State Of The Art In RAD Tool

    Rapid application development (RAD) is a one of new famous software development process. Requirements gathering by using workshops, do prototype and its’ early, reuse of software components, reiterative user testing of designs, follow schedule strictly, version releasing, good team work and lot of relative tool using like key features are used for RAD and it is help to system developed faster and of higher quality than some software development process (RAD is not suitable for every software development).


    There is important place for In the Rapid application development tools. Because its’ helps to improve quality and efficiency of other key features also. There are lots of categories of RAD tools. But we can simply category as follows.


    Category of RAD tools


    The above is not an only way to category of RAD tools. And also RAD tools can be categorized as web based, client-server (through a network) and stand alone like categories as application type. Or those RAD tools can categories as an its’ license (We can use general available licenses categories for this) and prices (Free, cheap 0$ -100$ / 100$-1000$, expensive 1000$-5000$ / 5000$<$).


    Here you can find the full paper