Netdata Custom Dashboards

You can:

  • create your own dashboards using simple HTML (no javascript is required for basic dashboards)
  • utilizing any or all of the available chart libraries, on the same dashboard
  • using data from one or more netdata servers, on the same dashboard
  • host your dashboard HTML page on any web server, anywhere

netdata charts can also be added to existing web pages.

Check this very simple working example of a custom dashboard, and its html source.

If you plan to put it on TV, check tv.html. This is a screenshot of it, monitoring 2 servers on the same page:

image

Web directory

The default web root directory is /usr/share/netdata/web where you will find examples such as tv.html, and demo.html as well as the main dashboard contained in index.html.
Note: index.html have a different syntax. Don’t use it as a template for simple custom dashboards.

Example empty dashboard

If you need to create a new dashboard on an empty page, we suggest the following header:

<!DOCTYPE html>
<html lang="en">
<head>
	<title>Your dashboard</title>

	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<meta name="apple-mobile-web-app-capable" content="yes">
	<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">

	<!-- here we will add dashboard.js -->

</head>
<body>

<!-- here we will add charts -->

</body>
</html>

dashboard.js

To add netdata charts to any web page (dedicated to netdata or not), you need to include the /dashboard.js file of a netdata server.

For example, if your netdata server listens at http://box:19999/, you will need to add the following to the head section of your web page:

<script type="text/javascript" src="http://box:19999/dashboard.js"></script>

what dashboard.js does?

dashboard.js will automatically load the following:

  1. dashboard.css, required for the netdata charts
  2. jquery.min.js, (only if jquery is not already loaded for this web page)
  3. bootstrap.min.js (only if bootstrap is not already loaded) and bootstrap.min.css.You can disable this by adding the following before loading dashboard.js:
<script>var netdataNoBootstrap = true;</script>
  1. jquery.nanoscroller.min.js, required for the scrollbar of the chart legends.
  2. bootstrap-toggle.min.js and bootstrap-toggle.min.css, required for the settings toggle buttons.
  3. font-awesome.min.css, for icons.

When dashboard.js loads will scan the page for elements that define charts (see below) and immediately start refreshing them. Keep in mind more javascript modules may be loaded (every chart library is a different javascript file, that is loaded on first use).

Prevent dashboard.js from starting chart refreshes

If your web page is not static and you plan to add charts using javascript, you can tell dashboard.js not to start processing charts immediately after loaded, by adding this fragment before loading it:

<script>var netdataDontStart = true;</script>

The above, will inform the dashboard.js to load everything, but not process the web page until you tell it to. You can tell it to start processing the page, by running this javascript code:

NETDATA.start();

Be careful not to call the NETDATA.start() multiple times. Each call to this function will spawn a new thread that will start refreshing the charts.

If, after calling NETDATA.start() you need to update the page (or even get your javascript code synchronized with dashboard.js), you can call (after you loaded dashboard.js):

NETDATA.pause(function() {
  // ok, it is paused

  // update the DOM as you wish

  // and then call this to let the charts refresh:
  NETDATA.unpause();
});

The default netdata server

dashboard.js will attempt to auto-detect the URL of the netdata server it is loaded from, and set this server as the default netdata server for all charts.

If you need to set any other URL as the default netdata server for all charts that do not specify a netdata server, add this before loading dashboard.js:

<script type="text/javascript">var netdataServer = "http://your.netdata.server:19999";</script>

Adding charts

To add charts, you need to add a div for each of them. Each of these div elements accept a few data- attributes:

The chart unique ID

The unique ID of a chart is shown at the title of the chart of the default netdata dashboard. You can also find all the charts available at your netdata server with this URL: http://your.netdata.server:19999/api/v1/charts (example).

To specify the unique id, use this:

<div data-netdata="unique.id"></div>

The above is enough for adding a chart. It most probably have the wrong visual settings though. Keep reading…

The duration of the chart

You can specify the duration of the chart (how much time of data it will show) using:

<div data-netdata="unique.id"
     data-after="AFTER_SECONDS"
     data-before="BEFORE_SECONDS"
     ></div>

AFTER_SECONDS and BEFORE_SECONDS are numbers representing a time-frame in seconds.

The can be either:

  • absolute unix timestamps (in javascript terms, they are new Date().getTime() / 1000. Using absolute timestamps you can have a chart showing always the same time-frame.
  • relative number of seconds to now. To show the last 10 minutes of data, AFTER_SECONDS must be -600 (relative to now) and BEFORE_SECONDS must be 0 (meaning: now). If you want the chart to auto-refresh the current values, you need to specify relative values.

Chart dimensions

You can set the dimensions of the chart using this:

<div data-netdata="unique.id"
     data-width="WIDTH"
     data-height="HEIGHT"
     ></div>

WIDTH and HEIGHT can be anything CSS accepts for width and height (e.g. percentages, pixels, etc). Keep in mind that for certain chart libraries, dashboard.js may apply an aspect ratio to these.

If you want dashboard.js to remember permanently (browser local storage) the dimensions of the chart (the user may resize it), you can add: data-id="SETTINGS_ID", where SETTINGS_ID is anything that will be common for this chart across user sessions.

Netdata server

Each chart can get data from a different netdata server. You can give per chart the netdata server using:

<div data-netdata="unique.id"
     data-host="http://another.netdata.server:19999/"
     ></div>

Chart library

The default chart library is dygraph. You set a different chart library per chart using this:

<div data-netdata="unique.id"
     data-chart-library="gauge"
     ></div>

Each chart library may support more chart-library specific settings. Please refer to the documentation of the chart library you are interested, in this wiki.

Data points

For the time-frame requested, dashboard.js will use the chart dimensions and the settings of the chart library to find out how many data points it can show.

For example, most line chart libraries are using 3 pixels per data point. If the chart shows 10 minutes of data (600 seconds), its update frequency is 1 second, and the chart width is 1800 pixels, then dashboard.js will request from the netdata server: 10 minutes of data, represented in 600 points, and the chart will be refreshed per second. If the user resizes the window so that the chart becomes 600 pixels wide, then dashboard.js will request the same 10 minutes of data, represented in 200 points and the chart will be refreshed once every 3 seconds.

If you need to have a fixed number of points in the data source retrieved from the netdata server, you can set:

<div data-netdata="unique.id"
     data-points="DATA_POINTS"
     ></div>

Where DATA_POINTS is the number of points you need.

You can also overwrite the pixels-per-point per chart using this:

<div data-netdata="unique.id"
     data-pixels-per-point="PIXELS_PER_POINT"
     ></div>

Where PIXELS_PER_POINT is the number of pixels each data point should occupy.

Data grouping method

Netdata supports average (the default) or max grouping methods. The grouping method is used when the netdata server is requested to return fewer points for a time-frame, compared to the number of points available.

You can give it per chart, using:

<div data-netdata="unique.id"
     data-method="max"
     ></div>

Selecting dimensions

By default, dashboard.js will show all the dimensions of the chart. You can select specific dimensions using this:

<div data-netdata="unique.id"
     data-dimensions="dimension1,dimension2,dimension3,..."
     ></div>

Chart title

You can overwrite the title of the chart using this:

<div data-netdata="unique.id"
     data-title="my super chart"
     ></div>

Chart units

You can overwrite the units of measurement of the dimensions of the chart, using this:

<div data-netdata="unique.id"
     data-units="words/second"
     ></div>

Chart colors

dashboard.js has an internal palette of colors for the dimensions of the charts. You can prepend colors to it (so that your will be used first) using this:

<div data-netdata="unique.id"
     data-colors="#AABBCC #DDEEFF ..."
     ></div>

Extracting dimension values

dashboard.js can update the selected values of the chart at elements you specify. For example, let’s assume we have a chart that measures the bandwidth of eth0, with 2 dimensions in and out. You can use this:

<div data-netdata="net.eth0"
     data-show-value-of-in-at="eth0_in_value"
     data-show-value-of-out-at="eth0_out_value"
     ></div>

My eth0 interface, is receiving <span id="eth0_in_value"></span>
and transmitting <span id="eth0_out_value"></span>.

Hiding the legend of a chart

On charts that by default have a legend managed by dashboard.js you can remove it, using this:

<div data-netdata="unique.id"
     data-legend="no"
     ></div>

API options

You can append netdata REST API v1 data options, using this:

<div data-netdata="unique.id"
     data-append-options="absolute,percentage"
     ></div>

Chart library performance

dashboard.js measures the performance of the chart library when it renders the charts. You can specify an element ID you want this information to be visualized, using this:

<div data-netdata="unique.id"
     data-dt-element-name="measurement1"
     ></div>

refreshed in <span id="measurement1"></span> milliseconds!

https://github.com/firehol/netdata/wiki/Custom-Dashboards

Advertisements

Hyper-V IDE or SCSI? What’s Performing Better, Faster?

If you wonder whether to use IDE or SCSI controllers for your Hyper-V virtual machines, the short answer is: IDE is fine.

There is no need to go for SCSI, it won’t be any faster. Note that you need to have a IDE connected virtual disk in order to boot.

If you want better performance, the virtual machines will run much faster if you:

  1. Use pass through disks instead
  2. Use fixed sized VHDs
  3. Refrain from using snapshots / checkpoints
  4. Refrain from using dynamically expanding disks
  5. Have at least 15% free space inside the VM at all times, and at least 10GB free. It’s an old characteristic of NTFS….
  6. Use paging files on a separate VHD, ideally hosted on a separate drive
  7. Use fixed-sized paging files
  8. Use 4KB NTFS cluster size on the host

Yes, from the performance side, a VM with IDE drives needs less processing to emulate IDE than using SCSI. Otherwise, in my experience, I did not have any breaks in using SCSI on Windows machines over using IDE. However I must say that during synthetic benchmarks, SCSI seems to be a little faster than IDE on Hyper-V.

https://community.spiceworks.com/topic/451467-hyperv-scsi-controller-v-ide-controller

Add or Remove Physical Hard Disk for Hyper-V Virtual Machine

Hyper-V enables running virtualized computer systems on top of a physical host. These virtualized systems (aka: guests) can be used and managed just as if they were physical computer systems, however they exist in a virtualized and isolated environment.

Your Hyper-V virtual machines can also be connected to physical hard disks from the host computer—not just to virtual hard disks. (This is sometimes referred to as having a “pass-through” disk connected to a virtual machine.)

This tutorial will show you how to add and remove physical hard disks to access from a Hyper-V virtual machine in Windows 8 and Windows 10.

Note   Note
Hyper-V is only available in the Window 8 Pro, Windows 8 Enterprise, Windows 10 Pro, Windows 10 Enterprise, and Windows 10 Education editions.

You can add hard drives (ex: HDD and SSD) and removable USB hard drives, but you will not be able to add removable media (ex: USB flash drive) to a Hyper-V virtual machine.

While you have a physical hard disk added to a Hyper-V virtual machine, you will not be able to create a checkpoint for the virtual machine.
CONTENTS:

  • Option One: To Add Physical Hard Disk to Hyper-V Virtual Machine
  • Option Two: To Remove Physical Hard Disk from Hyper-V Virtual Machine

 

To Add Physical Hard Disk to Hyper-V Virtual Machine
1. Open Disk Management (diskmgmt.msc).

2. Right click on the online disk (ex: Disk 3 – “Internal HDD”) you want to add to the VM, and click/tap on Offline. (see screenshot below)

Note   Note
It’s required that the physical hard disk be in an offline state on the host computer to be able to add to the VM.

Click image for larger version. 

Name:	Add_drive_to_Hyper-V_virtual_machine-1.png 
Views:	82 
Size:	71.5 KB 
ID:	90147

3. Once the disk is offline, you can close Disk Management if you like.

4. Open the settings of the Hyper-V virtual machine you want to add the disk to. (see screenshots below)

Note   Note
It doesn’t matter if you currently have the virtual machine off or running.

Name:  Hyper-V_VM_settings-1.png
Views: 1860
Size:  21.4 KB
Click image for larger version. 

Name:	Hyper-V_VM_settings-2.jpg 
Views:	236 
Size:	148.3 KB 
ID:	90156

5. In the VM’s settings, click/tap on SCSI Controller in the left navigation pane, select Hard Drive on the right side, and click/tap on the Add button. (see screenshot below)

Name:  Add_drive_to_Hyper-V_virtual_machine-3.png
Views: 607
Size:  60.5 KB

6. Select (dot) Physical hard disk on the right side, select the disk you want to add in the drop down menu, and click/tap on OK. (see screenshot below)

Name:  Add_drive_to_Hyper-V_virtual_machine-4.png
Views: 581
Size:  68.5 KB

7. The disk will now be available to access in the virtual machine. (see screenshot below)

Click image for larger version. 

Name:	Add_drive_to_Hyper-V_virtual_machine-5.jpg 
Views:	74 
Size:	123.7 KB 
ID:	90150

To Remove Physical Hard Disk from Hyper-V Virtual Machine

1. Open the settings of the Hyper-V virtual machine you want to remove the disk from. (see screenshots below)

Note   Note
It doesn’t matter if you currently have the virtual machine off or running.

Name:  Hyper-V_VM_settings-1.png
Views: 1860
Size:  21.4 KB
Click image for larger version. 

Name:	Hyper-V_VM_settings-2.jpg 
Views:	236 
Size:	148.3 KB 
ID:	90156

2. In the VM’s settings, select the disk you want to remove under SCSI Controller in the left navigation pane, and click/tap on the Remove button on the right side. (see screenshot below)

Name:  Remove_drive_from_Hyper-V_virtual_machine-2.png
Views: 608
Size:  66.9 KB

3. click/tap on OK. (see screenshot below)

Name:  Remove_drive_from_Hyper-V_virtual_machine-3.png
Views: 582
Size:  61.2 KB

4. The disk will now be removed from the virtual machine. (see screenshot below)

Click image for larger version. 

Name:	Remove_drive_from_Hyper-V_virtual_machine-5.jpg 
Views:	50 
Size:	118.7 KB 
ID:	90154

5. Open Disk Management (diskmgmt.msc).

6. Right click on the offline disk (ex: Disk 3 – “Internal HDD”) you removed from the VM, and click/tap on Online. (see screenshot below)

Note   Note
You will need to set the disk back to an online state to be able to access it from your host computer again.

Click image for larger version. 

Name:	Remove_drive_from_Hyper-V_virtual_machine-4.png 
Views:	47 
Size:	66.2 KB 
ID:	90163

7. Once the disk is back online, you can close Disk Management if you like.

Source: https://www.tenforums.com/tutorials/56257-add-remove-physical-hard-disk-hyper-v-virtual-machine.html

23 Best Practices to improve Hyper-V and VM Performance

Best practices are the most obvious starting point for improving your Hyper-V and Virtual Machine performance and I’ve listed 23 of them for you below.

Did I miss out on any? Leave a comment and let me know!

1. Avoid overloading Hyper-V Server

You must not overload Hyper-V Server. In other words, there is no need to host and run virtual machines which have no functions or I would say you just should not configure and install virtual machines for the sake of it. It is because VMMS.exe needs to maintain the status of all virtual machines including virtual machines which do not perform any business function.

2. Avoid creation of multiple Virtual Network Switches

VMMS.exe, running as Hyper-V Virtual Machine Management Service, keeps track of virtual switches created and the communication between virtual machines. You must always use the VLAN Tagging or other isolation mechanisms to separate communication between virtual machines instead of creating a virtual switch.

3. Configure antivirus software to bypass Hyper-V processes and directories

Antivirus software performs I/O operations for files being accessed by the Operating System and Hyper-V processes. You must alter the Antivirus configuration to exclude Hyper-V main processes and other directories as listed below:

  1. Hyper-V Processes: VMMS.exe and VMWP.exe
  2. All folders containing the Virtual Machine Hard disk files and configuration.
  3. Snapshot/checkpoint folders.
  4. Cluster Shared Volumes for path C:\ClusterStorage

4. Avoid Mixing Virtual Machines that can or cannot use Integration Service components

There are two types of virtual machine communication taking place on the Hyper-V Server 1) communication using VMBUS design 2) communication using emulation. The former is faster and is available only if you install the Integration Components in the virtual machine. In case if you need to run a virtual machine which is not supported by the Hyper-V or Integration Services cannot be installed, it is recommended to follow below guidelines:

  1. If you have a free Hyper-V Server, then install such virtual machines on that Hyper-V Server.
  2. If you do not have a free Hyper-V Server, then connect such virtual machines to a separate Hyper-V virtual switch.

5. Avoid storing system files on drives used for Hyper-V storage

You must not store Hyper-V virtual machine files on drives used by the Operating System. It is because of the I/O operation. Drives, where the system files are stored, are accessed by the system processes continuously and this might cause delay in processing the Hyper-V tasks.

6. Use separate volumes for each VM

Since the administrative tasks of a virtual machine are controlled by its own process (VMWP.exe), keeping several virtual machines on a single volume will cause more Disk I/O operations from each worker process. Hence, it is recommended to use separate volumes for storing virtual machine files (VHD, VHDx, checkpoints, and XML).

7. Avoid single point of failure for network adapters using NIC Teaming

Windows Server 2012 and later operating systems support NIC teaming. You must ensure that the NIC teaming is configured for the host operating system. Virtual Machines can also be configured to use the NIC Teaming feature.

8. Always use Network Isolation Mechanism rather than creating a separate virtual switch

When you come across any networking requirement that needs to be configured on Hyper-V Server, use the order of preference that is listed below to achieve the configuration you need. The best way is to use the “Hyper-v Virtual Network Switch and VLAN Tagging” method. Other methods can also be used depending on your requirements, but consider them in this order:

  1. Hyper-V Virtual Switch and VLAN Tagging Method
  2. Hyper-V Virtual Switch Method
  3. Firewall Method
  4. Different subnet Method
  5. Another Physical NIC Method

9. Install Multiple Network Interface cards on Hyper-V Server

There are multiple types of communication taking place in the Hyper-V. For example, communication between virtual machines, communication between virtual machines and parent and communication to manage these virtual machines from a management console. It is always recommended to dedicate a network interface card for managing virtual machines and Hyper-V host. Use of fabric resources is considered nowadays.

Want to get more Hyper-V performance on existing hardware? We have a guide for that.

10. Always use supported guest Operating Systems

VMBUS and VSP/VSC components are part of the Integration Services which help in improving the performance of communication between virtual machines and parent partition. Integration Components can be installed only on the Supported guest operating systems. Hence, please only install operating systems which are supported. A list of supported Guest Operating systems can be found here http://support.microsoft.com/kb/954958

11. Always use Generation Type 2 Virtual Machines

“Generation Type 2” feature was introduced with Windows Server 2012 R2. Previously, normal virtual machines allowed booting from IDE controller only, but with Generation Type 2, you can boot virtual machines from a SCSI controller, which is much faster than a virtual machine booting from an IDE controller. “Generation Type 2” virtual machine uses VMBUS and VSP/VSC architecture at the boot level, which improves overall performance of the virtual machines. “Generation Type  2” feature also allows paging file to be relocated to a SCSI controller.

12. Always change the default location for storing virtual machine configuration and VHD files

By default, when you enable the Hyper-V Role for the first time, the Hyper-V server is configured to store the virtual machine configuration and VHD files on the local storage under C:\ProgramData\Windows\Hyper-V\Virtual Machines folder. You must change this location to appropriate drives before the Hyper-V servers are moved to the production environment.

13. Monitor performance of Hyper-V Server for optimization

There are several Hyper-V performance counters available which you can use to monitor the performance of the Hyper-V Server, virtual machines, network communication, etc. Please make use of these performance counters and fix any issues with the performance.

14. De-fragment Hyper-V Server regularly or before creating a virtual hard disk

It is advisable to defrag Hyper-V Server disks where the VHD and virtual machine configuration files are stored regularly or before creating a large virtual hard disk file.

15. Always install the Integration Components on the supported virtual machines

Integration Components provide VMBUS and VSP/VSC design to improve the performance of virtual machines running on the Hyper-V Server. Always install the Integration Components on supported Guest operating systems. For Linux distributions, there are separate IC versions available which you can download from Microsoft site.

16. Always use Fixed VHD files

If storage is not an issue to get better performance for resource intensive applications, it is recommended to deploy virtual machines over Fixed VHD files instead of using Dynamic VHD files.

17. Use Dynamic Memory Feature

Although, the Dynamic Memory feature does not help directly in achieving better performance of the virtual machines, but it allows you to balance the allocation of memory resource dynamically. It is recommended to configure Dynamic Memory parameters for each critical virtual machine running on a Hyper-V server.

18. Configure SCSI disks for Data volumes

Since SCSI is faster than IDE, it is recommended to relocate data volume disk on a SCSI controller. For resource intensive applications like SQL Server, it is always recommended to keep Log and data disk files on separate SCSI controllers.

19. Relocate paging file to a SCSI Disk Controller

For applications running inside virtual machines which requires frequent paging operation, always relocate paging file to a SCSI Controller virtual hard drive. Paging file can be relocated to a SCSI controller if you are running “Generation Type 2” Virtual Machine.

20. Always exclude Paging file for virtual machines participating in Hyper-V Replication

If you have enabled Hyper-V Replication for virtual machines, make sure to exclude paging file from replication. Applications running inside virtual machines may do frequent paging operation and this may cause paging file contents to be replicated which are unnecessary.

21. Implement Hyper-V in Server Core in Production environment

Since Windows Server Core Operating System does not have a GUI, it consumes less resources. It is recommended to enable Hyper-V on a Windows Server Core installation rather than using a full version of Windows Operating System.

22. Close unnecessary Windows

Please make sure to close the following windows on Hyper-V server so the system resources are available to Hyper-V processes:

  1. Virtual Machine Connection Window: Always remember to close Virtual Machine connection window, once your task to the virtual machine is completed. Keeping the virtual machine connection window opened consumes system resources which could be utilized for other purpose by the hypervisor.
  2. Minimize Hyper-V Manazer Window: Keeping the Hyper-V Manager window opened also consumes system resources. So close it after your task is over.
  3. Any other Application Window: Make sure to close all other application windows on Hyper-V Server so the enough system resources are available to the hypervisor.

23. Use Certified Hardware

Microsoft developers spent a lot of time in testing the server applications on the specific hardware. It is recommended that we use only certified hardware, whenever possible. The list can be found here: www.windowsservercatalog.com

Central netdata is here!

This is the first release that supports real-time streaming of metrics between netdata servers.

netdata can now be:

  • autonomous host monitoring (like it always has been)
  • headless data collector (collect and stream metrics in real-time to another netdata)
  • headless proxy (collect metrics from multiple netdata and stream them to another netdata)
  • store and forward proxy (like headless proxy, but with a local database)
  • central database (metrics from multiple hosts are aggregated)

metrics databases can be configured on all nodes and each node maintaining a database may have a different retention policy and possibly run (even different) alarms on them.

https://github.com/firehol/netdata/releases

Why is VirtualBox only showing 32 bit guest versions on my 64 bit host OS?

I experienced an extremely nettlesome problem after swapping out my traditional hard drive for a fasterSolid State Drive (SSD).  I installed Windows 8.1 from scratch using the Product Key, copied over all my software (I probably should have used Ninite but I was too lazy) and then mindlessly enabled a bunch of options that I never enabled before.

But Alas! Stupidity has a cost and in my case it cost hours of discomfiting nights scouring Google for a solution.

Today I want to save you the pain I encountered by showing you how to fix a problem I experienced in VirtualBox.  This post is going to be succinct and to the point.

Even though my Host OS is a 64-bit version of Windows 8.1, VirtualBox categorically refused to display any 64-bit guest OSes in the Create Virtual Machine dialog box.

64-bit OS running 64-bit VirtualBox only showing 32-bit Guest OS

This was super annoying because all my ISOs were 64-bit therefore I couldn’t use them until I fixed this problem.

Uninstalling and reinstalling VirtualBox made no observable difference so I booted into the BIOS to see what I could find there.

I have a Lenovo ThinkPad W520.  As a side note, a few months ago I made another idiotic mistake: I enabled a bunch of BIOS passwords to make myself feel secure but then forgot how to disable them!

Thank God I didn’t enable a Supervisor Password or else I would have to replace the system board.  That’s seriously the only way to get around that one; resetting the CMOS won’t fix a forgotten Supervisor password.  Thankfully, I remembered, the Hard Drive password and the Power-On Password, so after surmounting those obstacles, I removed those passwords and tried to see if there was anything I could enable to make VirtualBox display 64-bit Guest OS versions.

In the Security Section, I noticed an option called Virtualization.

Filled with a bracing hope, I tabbed over and hit enter but then noticed all relevant settings were already enabled!

Intel (R) Virtualization Technology was enabled and Intel (R) VT-d Feature was also enabled.  These were two key options that VirtualBox was expecting.  But since both were already enabled I was utterly flumoxed.

Do I need to toggle the values?  In other words, do I need to disable both options, save changes, reboot, and then enable them again?

 

I couldn’t figure it out so I decided to poke around the administrator options in Windows to see what I could find.

I wanted to see what administrative Windows features were enabled – perhaps something was conflicting with the visualization settings in the BIOS?

I quickly pressed Windows Key + q to open the Search box and typed in:

turn windows features on or off

 

I scanned a few options but one in particular was salient:

Hyper-V was enabled.

In Windows 8.1 Hyper-V is the successor to Microsoft Virtual PC.  It’s the native virtualization component that is available to all Windows 8.1 users.

It was enabled though…

Interesting.  Could this be conflicting with the Intel settings in my BIOS?  I decided to uncheck the option to see.

 

Windows quickly displayed a progress bar denoting the removal of the Hyper-V platform and after about a minute prompted me to reboot.

When my system came back up, I swiftly logged back into the Windows, kicked open VirtualBox and checked the versions list:

Yes yes yes!!!!

I couldn’t have been more elated – something like this might seem trivial to some people but it was really worrying me.  Because it used to work before I upgraded my hard drive.  It turns out, upgrading my hard drive wasn’t even remotely causally related to my problem.

I think I literally pumped my fists in the air when I saw this screen.

 

The Bottom Line

If VirtualBox is only showing 32 bit versions in the Version list make sure:

  • Your Host OS is 64-bits
  • Intel Virtualization Technology and VT-d are both enabled in the BIOS
  • The Hyper-V platform is disabled in your Windows Feature list.

I hope this helps you – I don’t know if my situation will apply to your system configuration but I wanted to share.  Hopefully this little article will spare you the hours of mind numbing frustration that besieged me for the last few weeks.

 

Source: http://www.fixedbyvonnie.com/2014/11/virtualbox-showing-32-bit-guest-versions-64-bit-host-os/#.WBMy_MOKTRY