DEV Community

Cover image for Add hard disk to VMware CentOS 7 VM
Jirawat Uttayaya
Jirawat Uttayaya

Posted on

13 2

Add hard disk to VMware CentOS 7 VM

There are two easy steps to add a hard disk for a VMware CentOS 7 VM.

  1. Assign a new hard disk in VMware vSphere
  2. Configure the new hard disk in CentOS

Assign hard disk in vSphere

  1. In VMware vSphere, right click on the VM and select "Edit Settings..."
    VMware edit settings

  2. In the "New device:" section, select "SCSI Controller", and click the "OK" button. Note, there is a hard limit of 4 SCSI Controllers per VM.
    VMware SCSI Controller

  3. Right click "Edit Settings..." again and select "New Hard Disk"
    VMware New Hard Disk

  4. Input the byte size of the new hard disk (in this example, 5 GB). In the "Virtual Device Node" section, assign the new SCSI controller number. Click the "OK" button.
    VMware Assign SCSI

Configure new hard disk in CentOS

  • SSH into the CentOS VM and sudo to root
    sudo su -

  • List the block device to see the newly assigned vSphere hard disk.
    lsblk
    CentOS lsblk
    If you do not see the vSphere hard disk, force a rescan

for host in $(ls -1d /sys/class/scsi_host/*); do echo "- - -" > ${host}/scan ; done
for device in $(ls -1d /sys/class/scsi_disk/*); do echo "1" > ${device}/device/rescan ; done

Enter fullscreen mode Exit fullscreen mode
  • Format the disk partition. Get the device name from the previous lsblk output
    fdisk /dev/sdb
    See the screenshot for the options you should pick
    n (new partition)
    p (primary)
    (Press ENTER) (Use default partition number)
    (Press ENTER) (Use default first sector)
    (Press ENTER) (Use default last sector)

    t (change the partition type)
    8e (Linux LVM)

    w (write)

    CentOS fdisk

  • List the block device again to display the new disk partition /dev/sdb1
    CentOS lsblk2

  • Initialize the physical volume
    pvcreate /dev/sdb1
    pvs (to display the new physical volume)
    CentOS pv

  • Create the volume group
    vgcreate vgBackup /dev/sdb1 (vgBackup is just an name for this example. The volume group name can be whatever you want)
    vgs (to display the volume group)

  • Create the logical volume for the volume group
    lvcreate -n lvBackup -l +100%FREE vgBackup (lvBackup is just an name for this example. The logical volume name can be whatever you want)
    lvs (to display the logical volume)
    CentOSlv

  • Construct an XFS filesystem on the new logical volume
    mkfs.xfs /dev/vgBackup/lvBackup
    CentOS mkfs

  • Mount a Unix directory to the logical volume
    Edit the text file /etc/fstab and add the line below:
    /dev/vgBackup/lvBackup /backup xfs defaults 1 2

    mkdir -p /backup
    mount /backup
    df -h (to display the new directory)
    CentOS fstab

To learn more about Unix Logical Volumes, go to official RedHat LVM docs

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

Top comments (3)

Collapse
 
bbhide profile image
Bhavesh bhide

This steps worked like a charm. The meta comments are so much helpful without making the solution too long! Love it

Collapse
 
amaneer94 profile image
Aman Ullah

You saved my day.

Collapse
 
randallf profile image
randallf

Very clear, worked the first time! Thanks!

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay