본문 바로가기

TECH DOC

VMWARE SERVER ADD NEW DISK v1.0

VMWARE SERVER ADD NEW DISK v1.0

 

Date

Ver

Etc.

12.04.29

 

 

 

 

 

 

 

 

 

 

1.    Adding Virtual Disk

VMWARE SERVER 를 사용하다 보면 디스크가 부족한 상황이 있다.
이 경우 새로운 가상 디스크를 추가할 필요성이 생기는데 이에 대해 간단히 정리해 보았다.

 

2.    Way of Adding Virtual Disk

순서를 적어본다면 다음과 같은 흐름이다.
a
과정을 제외하고는 리눅스 시스템에 물리적 디스크 추가의 경우와 동일하다.

 

a.    Add Virtual Disk on VMWARE server
VMWARE Server
에서 가상디스크를 생성한다.

b.    Check added disk on linux system
새롭게 추가된 디스크는 sd[n] 이름으로 /dev 밑에서 확인할 수 있다.

c.    Using fdisk to create new partition
인지된 디바이스에 파티션을 생성한다.

d.    Formatting partition
새롭게 생성된 파티션에 파일시스템을 구성한다.

e.    Mount formatted new partition
새롭게 구성된 파티션을 마운트하여 사용가능한 상황으로 만든다.

3.    Detail process

a.    Add Virtual Diak on VMWARE server

add 를 선택해 장치추가가 가능하다. 참고할 것은 vm machine 이 켜져있는 상황에서 추가할 수 있는 디바이스는 디스크 뿐이다.

 




추가 디바이스 타입을 디스크로 고르고 나면 새로 만들것인지 기존에 존재하는 디스크를 추가할 것인지 선택 가능하다.

/*+ 기존 디스크를 추가할 수 있다는 것은 가상디스크를 타 가상머신에 옮겨 사용할 수 있다는 것을 의미한다.*/

size 를 고르고 나면 디스크가 추가된다.

b.    Check added disk on linux system
추가된 디스크는 /dev 밑에서 확인할 수 있다.

[oracle@test1 dev]$ ls | grep sd

sda

sda1

sda2

sdb

 

c.    Using fdisk to create new partition
fdisk
명령을 사용해 파티션을 생성하였다

fdisk
명령을 통해 사용한 옵션은 m, p, n 이렇게 세개이다.
m
manual 을 의미하며 p partition list, n new partition (creation) 을 의미한다.

[root@test1 ~]# fdisk /dev/sdb

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel

Building a new DOS disklabel with disk identifier 0x52f9ff71.

Changes will remain in memory only, until you decide to write them.

After that, of course, the previous content won't be recoverable.

 

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

 

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to

         switch off the mode (command 'c') and change display units to

         sectors (command 'u').

 

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): p

 

Disk /dev/sdb: 107.4 GB, 107374182400 bytes

255 heads, 63 sectors/track, 13054 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x52f9ff71

 

   Device Boot      Start         End      Blocks   Id  System

 

Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-13054, default 1): 1

Last cylinder, +cylinders or +size{K,M,G} (1-13054, default 13054):

Using default value 13054

 

Command (m for help): p

 

Disk /dev/sdb: 107.4 GB, 107374182400 bytes

255 heads, 63 sectors/track, 13054 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x52f9ff71

 

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1       13054   104856223+  83  Linux

 

Command (m for help): w

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

Syncing disks.

 

d.     Formatting partition
새롭게 생성 된 파티션을 ext4 로 포맷한다.

 

[root@test1 ~]# mkfs.ext4 /dev/sdb1

mke2fs 1.41.12 (17-May-2010)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

6553600 inodes, 26214055 blocks

1310702 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=4294967296

800 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks:

        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,

        4096000, 7962624, 11239424, 20480000, 23887872

 

Writing inode tables: done                           

Creating journal (32768 blocks): done

Writing superblocks and filesystem accounting information: done

 

This filesystem will be automatically checked every 27 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

 

 

[root@test1 oradata]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda1              29G  2.7G   25G  10% /

tmpfs                 4.0G  420K  4.0G   1% /dev/shm

[root@test1 oradata]# mount -t ext4 /dev/sdb1 /u01/app/oradata

[root@test1 oradata]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda1              29G  2.7G   25G  10% /

tmpfs                 4.0G  420K  4.0G   1% /dev/shm

/dev/sdb1              99G  188M   94G   1% /u01/app/oradata

 

e.    Mount formatted new partition
mount
명령을 직접 사용하여 mount 하는 방법이 있으나 OS 부팅 이후 자동으로 mount 하는 방법도 있다. 후자의 경우엔 /etc/fstab 에 내용을 추가한다.

 

#

# /etc/fstab

# Created by anaconda on Sun Apr 29 23:03:35 2012

#

# Accessible filesystems, by reference, are maintained under '/dev/disk'

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

UUID=ee0489fc-2662-4da3-8248-3adfdddb599a /                       ext4    defaults        1 1

UUID=525b6eb7-8c14-467b-b085-888d1bbec955 swap                    swap    defaults        0 0

tmpfs                   /dev/shm                tmpfs   defaults        0 0

devpts                  /dev/pts                devpts  gid=5,mode=620  0 0

sysfs                   /sys                    sysfs   defaults        0 0

proc                    /proc                   proc    defaults        0 0

/dev/sdb1               /u01/app/oradata        ext4    defaults        1 2

 

4.    Troubleshooting

/etc/fstab 을 잘못 수정한 경우 reboot filesystem recovery 모드로 강제진입하게 된다.
이 경우 /etc/fstab 수정이 불가능한 경우가 있는데 이땐 / 영역을 read-write 로 재마운트하여

수정가능하다.

 

mount -o remount,rw /

 

 

5.    References

A.     부팅시 user mount... | kldp.org
http://kldp.org/node/22826

 

B.     How modify fstab when its 'ro' in "repair filesystem" mode ? | LinuxQuestions.org |
http://www.linuxquestions.org/questions/linux-software-2/how-modify-fstab-when-its-ro-in-repair-filesystem-mode-562021/

 

C.     부팅시 user mount... | pioneer.tistory.com |
http://proneer.tistory.com/102