Thursday, July 28, 2011

About Swap Space

Adding Swap Space
Sometimes it is necessary to add more swap space after installation. For example, you may upgrade the amount of RAM in your system from 128 MB to 256 MB, but there is only 256 MB of swap space. It might be advantageous to increase the amount of swap space to 512 MB if you perform memory-intense operations or run applications that require a large amount of memory.
You have three options: create a new swap partition, create a new swap file, or extend swap on an existing LVM2 logical volume. It is recommended that you extend an existing logical volume.

Extending Swap on an LVM2 Logical Volume
To extend an LVM2 swap logical volume (assuming /dev/VolGroup00/LogVol01 is the volume you want to extend):
1. Disable swapping for the associated logical volume:
2. # swapoff -v /dev/VolGroup00/LogVol01
3. Resize the LVM2 logical volume by 256 MB:
4. # lvm lvresize /dev/VolGroup00/LogVol01 -L +256M
5. Format the new swap space:
6. # mkswap /dev/VolGroup00/LogVol01
7. Enable the extended logical volume:
8. # swapon -va
9. Test that the logical volume has been extended properly:
10. # cat /proc/swaps # free

Creating an LVM2 Logical Volume for Swap
To add a swap volume group (assuming /dev/VolGroup00/LogVol02 is the swap volume you want to add):
1. Create the LVM2 logical volume of size 256 MB:
2. # lvm lvcreate VolGroup00 -n LogVol02 -L 256M
3. Format the new swap space:
4. # mkswap /dev/VolGroup00/LogVol02
5. Add the following entry to the /etc/fstab file:
6. /dev/VolGroup00/LogVol02 swap swap defaults 0 0
7. Enable the extended logical volume:
8. # swapon -va
9. Test that the logical volume has been extended properly:
10. # cat /proc/swaps # free

Creating a Swap File
To add a swap file:
1. Determine the size of the new swap file in megabytes and multiply by 1024 to determine the number of blocks. For example, the block size of a 64 MB swap file is 65536.
2. At a shell prompt as root, type the following command with count being equal to the desired block size:
3. dd if=/dev/zero of=/swapfile bs=1024 count=65536
4. Setup the swap file with the command:
5. mkswap /swapfile
6. To enable the swap file immediately but not automatically at boot time:
7. swapon /swapfile
8. To enable it at boot time, edit /etc/fstab to include the following entry:
9. /swapfile swap swap defaults 0 0
The next time the system boots, it enables the new swap file.
10. After adding the new swap file and enabling it, verify it is enabled by viewing the output of the command cat /proc/swaps or free.

Removing Swap Space

Sometimes it can be prudent to reduce swap space after installation. For example, say you downgraded the amount of RAM in your system from 1 GB to 512 MB, but there is 2 GB of swap space still assigned. It might be advantageous to reduce the amount of swap space to 1 GB, since the larger 2 GB could be wasting disk space.
You have three options: remove an entire LVM2 logical volume used for swap, remove a swap file, or reduce swap space on an existing LVM2 logical volume.

Reducing Swap on an LVM2 Logical Volume
To reduce an LVM2 swap logical volume (assuming /dev/VolGroup00/LogVol01 is the volume you want to extend):
1. Disable swapping for the associated logical volume:
2. # swapoff -v /dev/VolGroup00/LogVol01
3. Reduce the LVM2 logical volume by 512 MB:
4. # lvm lvreduce /dev/VolGroup00/LogVol01 -L -512M
5. Format the new swap space:
6. # mkswap /dev/VolGroup00/LogVol01
7. Enable the extended logical volume:
8. # swapon -va
9. Test that the logical volume has been reduced properly:
10. # cat /proc/swaps # free

Removing an LVM2 Logical Volume for Swap
The swap logical volume cannot be in use (no system locks or processes on the volume). The easiest way to achieve this it to boot your system in rescue mode. Refer to for instructions on booting into rescue mode. When prompted to mount the file system, select Skip.
To remove a swap volume group (assuming /dev/VolGroup00/LogVol02 is the swap volume you want to remove):
1. Disable swapping for the associated logical volume:
2. # swapoff -v /dev/VolGroup00/LogVol02
3. Remove the LVM2 logical volume of size 512 MB:
4. # lvm lvremove /dev/VolGroup00/LogVol02
5. Remove the following entry from the /etc/fstab file:
6. /dev/VolGroup00/LogVol02 swap swap defaults 0 0
7. Test that the logical volume has been extended properly:
8. # cat /proc/swaps # free

Removing a Swap File
To remove a swap file:
1. At a shell prompt as root, execute the following command to disable the swap file (where /swapfile is the swap file):
2. # swapoff -v /swapfile
3. Remove its entry from the /etc/fstab file.
4. Remove the actual file:
5. # rm /swapfile
Step 1:
First, log into the server via SSH.
Step 2:
df -h

Step 3:
Next, type fdisk -l to view the total hard disk(s) size and partitions on the disk. It can also be noticed here that the physical partition /dev/sda3 is using Linux LVM.

fdisk -l
Step 4:
Type the pvs command and press Enter.

Note: If the PSize value listed will often be bit smaller than the value listed by the fdisk command output. If the difference in size between the fdisk output and PSize is more than 100GB, please reference What if my physical volume size has not changed after increasing disk space? before continuing.

Further Explanation:
pvs arrow image Physical Volume Show command.
PV arrow image Physical Volume path
VG arrow image Volume Group name.
Fmt arrow image LVM Format
Attr arrow image Physical volume attributes. The a attribute means that the physical volume is allocatable and not read-only.
PSize arrow image Physical Size of the physical volume.
PFree arrow image Physical Free space left on the physical volume.


Step 5:
As stated above, our scenario requires roughly 9GB of data to be uploaded to the /var folder. Since the logical volume assigned to /var is only 4GB, we will increase this to 10GB using the lvextend command. The command below is to be used as reference only as the parameters will be different depending on your scenario.

The format for the lvextend command is as follows:
lvextend -L +6G /dev/mapper/vg00-var

Further Explaination:
lvextend arrow image This is the logical volume extend command used to make a logical volume larger.
-L +6G arrow image It is specified using the Logical volume size option, how much larger to make the volume. In this scenario, 6 gigabytes is added to the current 4 gigabyte volume to result in a 10 gigabyte volume.
/dev/mapper/vg00-var arrow image The path to the logical volume is specified last. The path to the volume to be extended was taken from the output from the second step in this guide.


Step 6:
Type df -h to display the disk free space once again. The lvextend operation finished successfully in the last step however the /dev/mapper/vg00-var size is still only showing 4.0G. This is because while the logical volume was increased successfully, the file system needs to be extended to take advantage of the full space of the logical volume.

Step 7:
Type lvs to show the logical volume information once again. Here, we can confirm that the logical volume has successfully been extended to 10 gigabytes. In the next steps, we will increase the file system to match the logical volume size.

Step 8:
Type mount and press ENTER to display the mounted file systems. From the output, we find that the /dev/mapper/vg00-var logical volume is using xfs.


Step 9:
To increase the file system to match that of the logical volume, we will use the xfs_growfs command.

Typing xfs_growfs /var will extend the file system to the 10 gigabyte limit of the logical volume.

Step 10:
Type df -h to display the disk free space to confirm that the file system has been extended.
Friday, July 22, 2011

SVN Delete option

Windows SVN Delete Option.

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]
@="Delete SVN Folders"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]
@="cmd.exe /c \"TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \""

Linux SVN Delete option.

rm -rf `find . -type d -name .svn`
Tuesday, July 5, 2011

Configured SVN with http & https

yum install mod_dav_svn.i386


After installation we'll have to ensure that mod_dav_svn module was properly installed on apache.

LoadModule dav_svn_module libexec/apache2/mod_dav_svn.so
LoadModule authz_svn_module libexec/apache2/mod_authz_svn.so

We have apache with mod_dav_svn module installed properly. At this point we can create a repository. This will help us to test our instalation:

root# mkdir /var/www/svn
root# mkdir /var/www/svn/repos
root# svnadmin create /usr/home/svn/repos/test

Then we have to create the files that are going to be used to authenticate the users.

root# mkdir /var/www/svn/access
root# cd /var/www/svn/access
root# htpasswd -cm users root
password:****
root# htpasswd -m users viewer
password:*****

For add new user htpasswd -m users username

root# vi control

[test:/] repo name
root = rw
viewer = r
[test:/trunk] permission for trunk only
santosh = rw

[voip:/] repo name
arun = rw
ajay = r
santosh = rw



Now we will configure apache to read the repositories:

root# vi /etc/httpd/conf.d/subversion.conf


DAV svn
SVNParentPath /var/www/svn/repos
# SVNIndexXSLT "http://venus.idhasoft.com/svnindex.xsl"
AuthzSVNAccessFile /var/www/svn/access/control

# # Limit write permission to list of valid users.
#
# # Require SSL connection for password protection.
SSLRequireSSL
#
Satisfy Any
AuthType Basic
AuthName "Subversion Repositories at venus.idhasoft.com"
AuthUserFile /var/www/svn/access/users
Require valid-user
#



Apache will read all the files that are under the Includes directory, so our svn.conf will be loaded when apache starts, note that we are loading svnindex.xsl that is the file where the transformations are done, if you would like to give to your repository some look and feel work these file will be the appropiate. The file skeletons are under /usr/local/share/subversion/xslt/ directory, there are two files, one .xsl and another .css. Copy these files to your document root. I have a virtual server called svn.example.com in my machine. I have all my virtual servers under /usr/local/www/pages, so I have svn.example.com directory and I've configured that virtual server in /usr/local/etc/apache2/httpd.conf.

NameVirtualHost *:80

ServerAdmin ecruz@example.com
ServerName svn.example.com
DocumentRoot /usr/local/www/pages/svn.example.com
CustomLog /var/log/svn.example.com-access_log common


Restart the web server:

/etc/init.d/httpd restart