VMware Cloud Community
ADSC0
Contributor
Contributor
Jump to solution

Is This ESXi Deployment Correct?

We're upgrading our servers from the traditional physical file server to virtual servers, our decision to go with Vmware ESXi rather than MS Hyper-V.

Current Environment:

1- One DC server with all business apps installed on it ERP & users backup/sync files, shares, etc.

2- Two virtual servers running on seperate old NAS device (one running MS-SQL with some apps, and the other server for LAB)

New Environment:

I've been advised to setup the new environment & HW as follows due to the limited budget:

-One rack-server with high specs with:

--2 x 300GB SAS HDDs, configured on RAID-1 -as datastore1- used to install all 3 VMs on them only

--4 x 1TB SAS HDDs, configured on RAID-10 -as datastore2- used for SQL-DB, apps, users backup/sync data, users share

We bought all HW and I setup one VM as DC running windows server 2019 Std, another VM with SQL 2019 and windows server 2019 OS, all on datastore1.

My questions now:

1- is this setup scenario correct, specially for the HDDs, RAID types and isolating the VMs OS from the apps and data?

2- I couldn't install the SQL [data] folder on datastore2 (RAID-10), because I couldn't connect to datastore2 since the SQL VM on datastore1, so I kept it on the same datastore1, but this will be problem with the DB increase, so how to move the [data] folder to datastore2?

3- Noticed now problem with datastore1, no more space available while I should have 100GB free not used, because 2 VMs created and each one 100GB!

Can anyone advise me with this please?

Thanks in advance

1 Solution

Accepted Solutions
a_p_
Leadership
Leadership
Jump to solution

Welcome to the Community,

  1. The RAID types, and data distribution across the different tiers depends on your data. However, IMO it's actually not the OS which requires high I/Os (i.e. SSDs), but the data. Placing the OS virtual disks on SSDs will certainly decrease the boot time, or update time, but may not play a role during normal operation.
  2. You cannot store files directly on a datastore. In order to store data on the other datastore, edit the VMs settings, and add another virtual disk which you then store on the HDD datatore.
  3. The disk space required on the datastore is that for the virtual disks themselves, as well as for the swap files which are created when the VMs are powered on. By default, the swap file's size equals the VM's provisioned RAM size. Also keep in mind that you may need additional temporary disk space for snapshots, either ones that you create manually e.g. prior to critical updates, or ones that are created by image-based backup applications.

Does your RAID controller have battery buffered cache memory, i.e. support write-back operation? This is important for the overall write speed, and makes a huge difference.

André

View solution in original post

Reply
0 Kudos
8 Replies
a_p_
Leadership
Leadership
Jump to solution

Welcome to the Community,

  1. The RAID types, and data distribution across the different tiers depends on your data. However, IMO it's actually not the OS which requires high I/Os (i.e. SSDs), but the data. Placing the OS virtual disks on SSDs will certainly decrease the boot time, or update time, but may not play a role during normal operation.
  2. You cannot store files directly on a datastore. In order to store data on the other datastore, edit the VMs settings, and add another virtual disk which you then store on the HDD datatore.
  3. The disk space required on the datastore is that for the virtual disks themselves, as well as for the swap files which are created when the VMs are powered on. By default, the swap file's size equals the VM's provisioned RAM size. Also keep in mind that you may need additional temporary disk space for snapshots, either ones that you create manually e.g. prior to critical updates, or ones that are created by image-based backup applications.

Does your RAID controller have battery buffered cache memory, i.e. support write-back operation? This is important for the overall write speed, and makes a huge difference.

André

Reply
0 Kudos
ADSC0
Contributor
Contributor
Jump to solution

Many thanks to you André for your quick response ans support

1. Noted

2.a. Well this exactly what I was trying to do but it didn't work before and it was giving error, but now I remounted the datastore2 and did the same create vHDD folder then it worked perfectly Smiley Happy.

2.b. Now since I have 2TB in datastore2 I'm planning to reserve 1TB for users shared folders, is it the only way to do that as you suggested creating a vdisk inside the DC VM and then share it -OR- is it possible to do it by creating iSCSI?

3. So I believe the swap files are occupying the extra storage! I was coping some big important DB.bak files to the VM and I couldn't complete it, ESXi was showing error msg not enough space, while inside the VM I had more than 60GB space then the ESXi hanged up, the only work around I could do to finish this copy that to move all other VMs from datastore1 to datastore2, and now when I check to storage for the DC VM its 340GB while actually it has 240GB HDDs, I shutdown the VM and check the space its decreased by almost 16GB the memory size but when power it on again size is back to 340GB, how to free/recall the wasted space? or clear the swap.

FYI - under Resources Consumption - Storage:

-Provisioned = 240GB

-Uncommitted = 103GB

-Not-shared= 389GB

-Used= 389GB

I'm not sure about the RAID controller and the battery buffered cache memory - will check and let you know.

Thanks again.

Reply
0 Kudos
IRIX201110141
Champion
Champion
Jump to solution

I suggest to separate your DC and dont install any kind of other software or data on it. This is more important when you have a 2nd. DC around. The day will come when you have to restore the VM because of a massive lost on your Files data or failed upgrade (MS Patching) and than you send your Windows AD back into time which can create huge trouble if you dont care and when having the 2nd. DC around.

Dont run any kind of VM on a NAS when its a production like Environment. These NAS needs updates in the same way as every Windows/Linux system but you cant restart them without effecting the service. When ESXi loose a Datastore he will be react to it. From a APD/PDL or a becomming unmanageble everything is possible.

You can store your ISO file collection on a NFS Datastore comming from that NAS.

Regards,
Joerg

Reply
0 Kudos
a_p_
Leadership
Leadership
Jump to solution

... is it the only way to do that as you suggested creating a vdisk inside the DC VM and then share it -OR- is it possible to do it by creating iSCSI?

What you are looking for - if I understood you correctly - is something where user data will be stored, so what you'll need is a file share. iSCSI will not help in this case, because it's block storage, and requires a system (other than ESXi itself) which presents the iSCSI LUNs to a server.

I was coping some big important DB.bak files to the VM and I couldn't complete it, ESXi was showing error msg not enough space, ...

This sounds as if you are using "Thin provisioning" for the virtual disks. Although this can save disk space, it's critical to monitor disk space on the datastores, and be able to increase space if needed, which isn't possible in your case. So what I would recommend is to use Thick provisioning, at least for the VMs' system virtual disk to avoid system crashes.

If disk space is critical, then you may consider the option to configure memory reservation in the VM's settings. The swap file's size will be provisioned memory minus reserved memory, so that in case you reserve all memory the size will be zero. This should however only be done if the host has sufficient physical memory to serve all the VMs requirements!

André

Reply
0 Kudos
ADSC0
Contributor
Contributor
Jump to solution

Hi Goerg,

I agree with you about the DC, but since this is a small business environment, we decided to not increase the number of v. servers in addition we retired some SWs, otherwise I'd end-up with 3 v. servers 1 for DC, 1 for SQL server and 1 for Apps, which I don't see it practical in my situation.

Even I was thinking to combine the 2 servers and keep the SQL server with the DC.

I used the VM on NAS before because we had a lot of issues with the physical server so the built-in virtual app in the NAS as a solution to solve our problem, true it was slow but solved the issue, but now not needed since we moved to ESXi dedicated new server.

You can store your ISO file collection on a NFS Datastore comming from that NAS.

I'm keeping the only required ISO files for OS installation on ESXi datastore1 because I couldn't find any other way to let the VM boot or see that required ISO.

From NAS I'm using the standard folder share if need to share anything from it.

Thanks for your input

/Ahmad

Reply
0 Kudos
ADSC0
Contributor
Contributor
Jump to solution

Hi Andre,

What you are looking for...

How to share the storage on datastore2 (2TB) with users, I thought I'll be able to take about 1TB from datastore2 and share it with users/departments to share and save files. But if my understanding is correct, then the only way to accomplish this is to add a vdisk inside the VM and then share it with the users, correct? and is there any other way to do it?

This sounds as if you are using "Thin provisioning" for the virtual disks....

No I'm using "Thick provisioned, lazily zeroed" for all vdisks I create, and as you see from my previous post I've uncommitted GBs, why this is happening and how to solve it?

Sorry to trouble you - I'm really new to VMware virtualization products!

/Ahmad

Reply
0 Kudos
a_p_
Leadership
Leadership
Jump to solution

But if my understanding is correct, then the only way to accomplish this is to add a vdisk inside the VM and then share it with the users, correct? and is there any other way to do it?

That's correct, ESXi doesn't provide a file sharing feature (not taking vSAN into account), so that you need some "helper" VM to provide shared folders to clients.

... and as you see from my previous post I've uncommitted GBs, ...

Sorry, I missed this. There are actually only two reasons why datastore usage increases while copying data to a virtual disk. One is the usage of thin provisioned disks, and the other one is that the VM has active snapshots.

To find out whether the VM has active snapshots, don't just rely on the Snapshot Manager, but check the VM's current virtual disk name, or the .vmdk files in the VM's folder on the datastore. If you see file names like <vmname>-00000x.vmdk, then the VM has active snapshots. To delete them create another snapshot, so that the "Delete All" option becomes available in the Snapshot Manager.

Caution: If you are already low on disk space, consider to temporarily shut down the VM before you run "Delete All". This will not only free up some disk space on the datastore (the swap file will be deleted when you shut down the VM), but will also ensure that the deletion will not require additional disk space in case of thick provisioned virtual disks.

André

ADSC0
Contributor
Contributor
Jump to solution

... and the other one is that the VM has active snapshots..

Oh God I don't believe it that I've done this mistake, I've checked everything except snapshots. Yes you're correct its the snapshots, I've taken 3 snapshots before and forgot about them.

many thanks to you Andre.

Reply
0 Kudos