Storage

From Wiki
Jump to: navigation, search

Contents

SCSI rescan without reboot

On debian

backup:~# aptitude install scsiadd

backup:~# scsiadd -s
Attached devices:
Host: scsi0 Channel: 00 Id: 06 Lun: 00
  Vendor: PE/PV    Model: 1x6 SCSI BP      Rev: 1.0 
  Type:   Processor                        ANSI  SCSI revision: 02
Host: scsi0 Channel: 02 Id: 00 Lun: 00
  Vendor: MegaRAID Model: LD 0 RAID1   34G Rev: 521X
  Type:   Direct-Access                    ANSI  SCSI revision: 02


On other linux:

backup:~# echo "- - -" >  /sys/class/scsi_host/host0/scan

For some Fiber channels it can be:

echo "1" > /sys/class/fc_host/host#/issue_lip


Partition re-read without reboot

backup:~# aptitude install parted
backup:~# partprobe

Adding a new partition

fdisk + partprobe

backup:~# fdisk /dev/sda

The number of cylinders for this disk is set to 34680.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/sda: 36.3 GB, 36364615680 bytes
64 heads, 32 sectors/track, 34680 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Disk identifier: 0x49e2fd2f

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        7629     7812080   83  Linux
/dev/sda2            7630        7631        2048   82  Linux swap / Solaris


Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (7632-34680, default 7632): 
Using default value 7632
Last cylinder or +size or +sizeM or +sizeK (7632-34680, default 34680): 
Using default value 34680

Command (m for help): p

Disk /dev/sda: 36.3 GB, 36364615680 bytes
64 heads, 32 sectors/track, 34680 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Disk identifier: 0x49e2fd2f

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        7629     7812080   83  Linux
/dev/sda2            7630        7631        2048   82  Linux swap / Solaris
/dev/sda3            7632       34680    27698176   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.


backup:~# partprobe 


backup:~# ls -la /dev/sda*
brw-rw---- 1 root disk 8, 0 2009-10-01 11:10 /dev/sda
brw-rw---- 1 root disk 8, 1 2009-09-30 15:32 /dev/sda1
brw-rw---- 1 root disk 8, 2 2009-09-30 15:32 /dev/sda2
brw-rw---- 1 root disk 8, 3 2009-10-01 11:10 /dev/sda3
backup:~# 


Formatting ext3 and mounting the partiton


backup:~# mke2fs -j /dev/sda3 
mke2fs 1.41.3 (12-Oct-2008)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
1733312 inodes, 6924544 blocks
346227 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
212 block groups
32768 blocks per group, 32768 fragments per group
8176 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 36 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.


Mounting via command:

backup:~# mkdir /tmp/mount

backup:~# mount /dev/sda3 /tmp/mount/

Mounting via fstab

backup:~# cat /etc/fstab 
# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
/dev/sda1       /               ext3    errors=remount-ro 0       1
/dev/sda3       /tmp/mount      ext3    defaults	 0       2
/dev/sda2       none            swap    sw              0       0
/dev/hde        /media/cdrom0   udf,iso9660 user,noauto     0       0
/dev/hdb        /media/cdrom1   udf,iso9660 user,noauto     0       0

backup:~# umount /tmp/mount/
backup:~# mount /tmp/mount/

LVM

|| Physical Volumes || pv || Physical disk or partions that we will use to create partiongs || || Volume Group || vg || A set of Physical Disk's or partitions that equals like a big disk || || Logical Volume || lv || Logical Volumes that we set up in a Volume Group, like a partition in a disk ||


Create an LVM partition

The procedure is to create the partition like other partition and change the Id to 'Linux LVM'

backup:~# fdisk /dev/sda3 
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x10c7f8c8.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.


The number of cylinders for this disk is set to 27049.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): p

Disk /dev/sda3: 28.3 GB, 28362932224 bytes
64 heads, 32 sectors/track, 27049 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Disk identifier: 0x10c7f8c8

     Device Boot      Start         End      Blocks   Id  System

Command (m for help): q

backup:~# fdisk /dev/sda

The number of cylinders for this disk is set to 34680.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/sda: 36.3 GB, 36364615680 bytes
64 heads, 32 sectors/track, 34680 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Disk identifier: 0x49e2fd2f

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        7629     7812080   83  Linux
/dev/sda2            7630        7631        2048   82  Linux swap / Solaris
/dev/sda3            7632       34680    27698176   83  Linux

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): L

 0  Empty           1e  Hidden W95 FAT1 80  Old Minix       be  Solaris boot   
 1  FAT12           24  NEC DOS         81  Minix / old Lin bf  Solaris        
 2  XENIX root      39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 5  Extended        41  PPC PReP Boot   85  Linux extended  c7  Syrinx         
 6  FAT16           42  SFS             86  NTFS volume set da  Non-FS data    
 7  HPFS/NTFS       4d  QNX4.x          87  NTFS volume set db  CP/M / CTOS / .
 8  AIX             4e  QNX4.x 2nd part 88  Linux plaintext de  Dell Utility   
 9  AIX bootable    4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt         
 a  OS/2 Boot Manag 50  OnTrack DM      93  Amoeba          e1  DOS access     
 b  W95 FAT32       51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O        
 c  W95 FAT32 (LBA) 52  CP/M            9f  BSD/OS          e4  SpeedStor      
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs        
 f  W95 Ext'd (LBA) 54  OnTrackDM6      a5  FreeBSD         ee  EFI GPT        
10  OPUS            55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/
11  Hidden FAT12    56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC b
12  Compaq diagnost 5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor      
14  Hidden FAT16 <3 61  SpeedStor       a9  NetBSD          f4  SpeedStor      
16  Hidden FAT16    63  GNU HURD or Sys ab  Darwin boot     f2  DOS secondary  
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fd  Linux raid auto
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fe  LANstep        
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid ff  BBT            
1c  Hidden W95 FAT3 75  PC/IX          
Hex code (type L to list codes): 8e
Changed system type of partition 3 to 8e (Linux LVM)

Command (m for help): p

Disk /dev/sda: 36.3 GB, 36364615680 bytes
64 heads, 32 sectors/track, 34680 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Disk identifier: 0x49e2fd2f

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        7629     7812080   83  Linux
/dev/sda2            7630        7631        2048   82  Linux swap / Solaris
/dev/sda3            7632       34680    27698176   8e  Linux LVM

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.


backup:~# partprobe 


Creating Physical Volumes

backup-server:~# pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created

To show it:

backup-server:~# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/sda3
  VG Name               backup-vg
  PV Size               9.31 GB / not usable 2.00 MB
  Allocatable           yes (but full)
  PE Size (KByte)       4096
  Total PE              2384
  Free PE               0
  Allocated PE          2384
  PV UUID               c523t4-ayG8-111I-w1uj-4MTL-ivau-WO00rR

Creating Volume Group

backup-server:~# vgcreate backup-vg /dev/sda3 
  Volume group "backup-vg" successfully created

To display the volume group:

backup-server:~# vgdisplay 
  --- Volume group ---
  VG Name               backup-vg
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               9.31 GB
  PE Size               4.00 MB
  Total PE              2384
  Alloc PE / Size       0 / 0   
  Free  PE / Size       2384 / 9.31 GB
  VG UUID               rKpG12-3AUc-J2Yg-Kl1V-IlK1-kTBo-prYgMs

Creating a logical volume


backup-server:~# lvcreate -l 100%FREE -n bacula backup-vg
  Logical volume "bacula" created


backup-server:~# lvdisplay 
  --- Logical volume ---
  LV Name                /dev/backup-vg/bacula
  VG Name                backup-vg
  LV UUID                YIK4iX-faGF-A84t-slGo-6lv1-VKxF-7j8SSC
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                9.31 GB
  Current LE             2384
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:0

Then we need to format the new logical parition by:


backup-server:~# mke2fs -j /dev/backup-vg/bacula 
mke2fs 1.41.3 (12-Oct-2008)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
610800 inodes, 2441216 blocks
122060 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2499805184
75 block groups
32768 blocks per group, 32768 fragments per group
8144 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

Then we can start to mount the partition:

backup-server:~# mkdir  /tmp/aa
backup-server:~# mount /dev/backup-vg/bacula /tmp/aa/

So here, we go, we have a new partiton of 9.2G

backup-server:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             7.4G  872M  6.2G  13% /
tmpfs                1014M     0 1014M   0% /lib/init/rw
udev                   10M  724K  9.3M   8% /dev
tmpfs                1014M     0 1014M   0% /dev/shm
/dev/mapper/backup--vg-bacula
                      9.2G  150M  8.6G   2% /tmp/aa


Resizing on LVM

On the worse of the cases, if we want to resize the Logical Volume, we will need to create a new Physical Volume, add it into the Volume Group, and extend the logical volume:

First that we need to do is to ummount the partition.

backup-server:/tmp# unmount /tmp/aa

We will create a new Physical Device

backup-server:/tmp# pvcreate /dev/sda4 
  Physical volume "/dev/sda4" successfully created

backup-server:/tmp# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/sda3
  VG Name               backup-vg
  PV Size               9.31 GB / not usable 2.00 MB
  Allocatable           yes (but full)
  PE Size (KByte)       4096
  Total PE              2384
  Free PE               0
  Allocated PE          2384
  PV UUID               c523t4-ayG8-111I-w1uj-4MTL-ivau-WO00rR
   
  "/dev/sda4" is a new physical volume of "17.10 GB"
  --- NEW Physical volume ---
  PV Name               /dev/sda4
  VG Name               
  PV Size               17.10 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               N4pKWY-cQyJ-zFiA-4nAO-tN0B-xw63-8NOwYT

Then we will need to extend the Volume Group with the Physical Device

backup-server:/tmp# vgdisplay 
  --- Volume group ---
  VG Name               backup-vg
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               9.31 GB
  PE Size               4.00 MB
  Total PE              2384
  Alloc PE / Size       2384 / 9.31 GB
  Free  PE / Size       0 / 0   
  VG UUID               rKpG12-3AUc-J2Yg-Kl1V-IlK1-kTBo-prYgMs



backup-server:/tmp# vgextend backup-vg /dev/sda4 
  Volume group "backup-vg" successfully extended


backup-server:/tmp# vgdisplay 
  --- Volume group ---
  VG Name               backup-vg
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               26.41 GB
  PE Size               4.00 MB
  Total PE              6761
  Alloc PE / Size       2384 / 9.31 GB
  Free  PE / Size       4377 / 17.10 GB
  VG UUID               rKpG12-3AUc-J2Yg-Kl1V-IlK1-kTBo-prYgMs
<pre>

So we have now a 17G free in the Volume Group.   

We need now to extend the Logical Volume bacula.

<pre>
backup-server:/tmp# lvextend -l +100%FREE /dev/backup-vg/bacula 
  Extending logical volume bacula to 26.41 GB
  Logical volume bacula successfully resized



backup-server:/tmp# lvdisplay 
  --- Logical volume ---
  LV Name                /dev/backup-vg/bacula
  VG Name                backup-vg
  LV UUID                YIK4iX-faGF-A84t-slGo-6lv1-VKxF-7j8SSC
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                26.41 GB
  Current LE             6761
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:0
   

But still if we mount the Logical Volume it is still 9 G :

backup-server:/tmp# mount /dev/backup-vg/bacula /tmp/aa/

backup-server:/tmp# ls -la /tmp/aa/
total 28
drwxr-xr-x 3 root root  4096 2009-10-02 12:37 .
drwxrwxrwt 5 root root  4096 2009-10-02 12:34 ..
-rw-r--r-- 1 root root    15 2009-10-02 12:37 aa.txt
drwx------ 2 root root 16384 2009-10-02 12:34 lost+found


backup-server:/tmp# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             7.4G  872M  6.2G  13% /
tmpfs                1014M     0 1014M   0% /lib/init/rw
udev                   10M  724K  9.3M   8% /dev
tmpfs                1014M     0 1014M   0% /dev/shm
/dev/mapper/backup--vg-bacula
                      9.2G  150M  8.6G   2% /tmp/aa


We will need also to extend the partiton. This will depend on the file-system that we have. In our case this is ext3. So we will use resize2fs utility to resize. If no argument is given it will resize to the max size of the partition. The first time we run the program it will ask to check the partition with e2fsck.


backup-server:/tmp# umount /tmp/aa/

backup-server:/tmp# resize2fs /dev/backup-vg/bacula 
resize2fs 1.41.3 (12-Oct-2008)
Please run 'e2fsck -f /dev/backup-vg/bacula' first.


backup-server:/tmp# e2fsck -f /dev/backup-vg/bacula 
e2fsck 1.41.3 (12-Oct-2008)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/backup-vg/bacula: 12/610800 files (0.0% non-contiguous), 76506/2441216 blocks



backup-server:/tmp# resize2fs /dev/backup-vg/bacula 
resize2fs 1.41.3 (12-Oct-2008)
Resizing the filesystem on /dev/backup-vg/bacula to 6923264 (4k) blocks.
The filesystem on /dev/backup-vg/bacula is now 6923264 blocks long.

So we will have now a new partiton of 26G and with the data still on it.


backup-server:/tmp# mount /dev/backup-vg/bacula /tmp/aa/


backup-server:/tmp# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             7.4G  872M  6.2G  13% /
tmpfs                1014M     0 1014M   0% /lib/init/rw
udev                   10M  724K  9.3M   8% /dev
tmpfs                1014M     0 1014M   0% /dev/shm
/dev/mapper/backup--vg-bacula
                       26G  154M   25G   1% /tmp/aa


backup-server:/tmp# cd /tmp/aa/
backup-server:/tmp/aa# ls -la
total 28
drwxr-xr-x 3 root root  4096 2009-10-02 12:37 .
drwxrwxrwt 5 root root  4096 2009-10-02 12:34 ..
-rw-r--r-- 1 root root    15 2009-10-02 12:37 aa.txt
drwx------ 2 root root 16384 2009-10-02 12:34 lost+found
backup-server:/tmp/aa#

Mounting LVM on other server

Boot with rescue CD. Skip mounting of the system partitions.

# lvm vgchange -a y
Personal tools
Namespaces
Variants
Actions
Navigation
Content
Toolbox