XenApp/XenDesktop 7.X : Basic Powershell Cmdlets for Delivery Controller’s Health Check

Please run the following command to do a Delivery Controller’s health check from an elevated powershell window:

To load the Citrix modules run asnp citrix*

1. Run Get-BrokerController to list the information about all the Delivery Controllers in the site.

Note down the SID of the controller and match it with the SID value in the chb_configcontrollers XenApp/XenDesktop Site database table (Browse to the database for your XenDesktop environment, expand tables and then check for the table by the chb.config controller)

Also ensure that the status of all the Delivery Controllers is “Active”

2. To check the service status of all the Citrix Services , run the following command:

Get-command get-*servicestatus

Copy all the values in ‘Name’ and paste it in the next command line

OUTPUT: Service status should come up as ‘OK


3. To measure the number of instances getting registered from the controller with the database:

Get-ConfigRegisteredServiceInstance | measure

OUTPUT: Will give the consolidated number. (With every version we have few new services and instances which get added, i.e, with 7.6 we have 49 instances. If you have 2 controllers in the environment then the value will come up to be 49*2=98)


4. For environment where we have separate databases for Logging and Monitor service, the following command can be run to check the status:

(In case you have a single database for Ste, Monitoring and Logging the String value will be same. For environment with different databases, the string value will be different for Logging and Monitor datastore)

Get-LogDatastore

Get-MonitorDatastore


5. To check the connection string which connects the Delivery Controller uses to communicate to the site database, run the following command:

Get-BrokerDbconnection

OUTPUT: Server= SQL Server name;Initial Catalog=Name of the XenApp/XenDesktop database


6. Run the following command to verify the installed db version for all the services. Example for Broker Service run:

Get-BrokerInstalledDbVersion

Similarly, you can check for the other services as well:

Get-AdminInstalledDbVersion

Get-AnalyticsInstalledDbVersion and so on.

You will get the list of Citrix services from Get-command get-*servicestatus as stated earlier.

7. To check the Connection strings in the registry, browse to the following location and check the value of the connection string:

HKLMComputerHKEY_LOCAL_MACHINESOFTWARECitrixDesktopServerConnectionsController

This can as well be checked for all the services installed:

Browse to the following location and verify the value for the Connection String:

HKLMComputerHKEY_LOCAL_MACHINESOFTWARECitrixXDServices”Service name”DatastoreConnections

8. Run the below cmdlet to test Database connectivity of individual Citrix Services.

Example:

Test-BrokerDBconnection “<connection strings>”

Test-ConfigDBConnection “<connection strings>”

Related:

How to troubleshoot Virtual Delivery Agent (VDA) Registration issues

Citrix Virtual Apps and Desktops, formerly XenDesktop, fits the enterprise need to bring both VDI and apps into a user-centric experience.

Citrix Virtual Apps, formerly XenApp, fits the enterprise need to bring legacy apps into a cloud management environment.

This article contains information about troubleshooting Virtual Desktop Agent Registration with Controllers in Citrix Virtual Apps and Desktops.

Background

In order to broker connections to Virtual Machines, the Delivery Controller (on-prem)/ Connector (Cloud) relies upon an installed software component on each virtual machine – the Virtual Desktop Agent (VDA) – being in communication with one of the controllers/connectors in your site. This state is referred to as the VDA being registered.

Note: This article applies only to 7.X versions.

Related:

XenApp/XenDesktop: Application Launch Gets Stuck At “Connection Established. Negotiating Capabilities” For A Few Minutes Minute And Then Closes Out.

  • XenApp/XenDesktop: Application launch gets stuck at “Connection Established. Negotiating Capabilities” for a few minute and then closes out.
  • In Citrix Studio the session is found in Prelogon State.
  • Csrss.exe and winlogon.exe get created for that session till the time it is stuck at “Connection Established. Negotiating Capabilities” and then once the windows disappears, winlogon.exe and csrss.exe for that session also close out.
  • In CDF Trace collected from VDA side ConnectionFailure’s are seen.

52719,1,2018/07/05 11:26:07:36798,2860,1740,1,BrokerAgent,,0,,5,EntryExit,”=========>>>>> StackManager.NotifySessionEvent(09b84615-b5bc-4235-b19e-9a18192ea3ad): Enter(SessionEvent:SESSION_EVENT_TERMINATE, SessionReasonCode:SESSION_EVENT_REASON_CONNECTION_FAILURE, rdsCalId:0)”,””

52745,1,2018/07/05 11:26:07:39686,3880,1740,1,DirectorVdaPlugin,,0,,5,EntryExit,”OnPrepareSession: [SessionKey=09b84615-b5bc-4235-b19e-9a18192ea3ad, TerminateReasonCode=ConnectionFailure]”,””

  • In the Application Event logs Error 4005: The Windows logon process has unexpectedly terminated is logged.

Related:

Using copy VM to copy VMs from one machine to another servers takes too long

Required knowledge:

  • Basic level use of command line (CLI)
  • Basic level usage of VI
  • Basic level usage of SSH client
  • Hosts should have at least 4GB of dom0 memory
  1. Log into the master host via CLI

  2. Make copy of sparse_dd.conf file: cp /etc/sparse_dd.conf /etc/sparse_dd.conf.old

  3. Use VI to access file: vi /etc/sparse_dd.conf

  4. Uncomment the line:

    # encryption-mode = never

    so it reads

    encryption-mode = never

  5. Save conf file

  6. Reboot host


This procedure will have to be done on whatever host will be master. If the environment changes often, and this is a feature that is desired across pool please complete on all hosts.

**This type of encryption is for high-security environments. If yours is such an environment either do not use, or make sure you change back when copy procedure is done. Use at own risk.**

Related:

XenApp/XenDesktop 7.15.2000 : Citrix Studio Times Out While Enumerating Application Groups In Large Environments With Lot Of Application Groups for Tag Restrictions

  • XenApp/XenDesktop 7.15.2000: Citrix Studio Times Out While Enumerating Application Groups in Large Environments where lot of Application Groups are Published and Tagging is also enabled.

  • When you click on “Applications” tab in Citrix Studio it gets hung with a spinning circle for a few minutes and then throws the error “Database Could Not be Contacted”. When you click on Error details you see “Get-BrokerApplicationGroup” gives the error “Problem Occurred contacting the database”

  • The issue does not occur with any other tab in Citrix Studio except while clicking on “Applications Tab”.

Appgroup4
CDF TRACE

In CDF Traces collected from Delivery Controllers we see ‘Execution Timeout Expired.

368781,1,2018/07/02 13:10:07:11527,2436,1624,3,Xendesktop Management Console,_#dotNet#_,0,,1,CDF_NET_INFO,”Xendesktop Management Console:2:1:CmdletExecutionLog(1114): Script GetApplicationGroupsScript(1111): Failed to execute command: Get-BrokerApplicationGroup -AdminAddress “DDCNAME:80″ -MaxRecordCount 2147483647“,””

368782,1,2018/07/02 13:10:07:11545,2436,1624,3,Xendesktop Management Console,_#dotNet#_,0,,1,CDF_NET_ERROR,”Xendesktop Management Console:1:1:CmdletExecutionLog(1114): Script GetApplicationGroupsScript(1111): Error received from command: Get-BrokerApplicationGroup -AdminAddress “DDCNAME:80” -MaxRecordCount 2147483647, Error:

Name : Get-BrokerApplicationGroup

+ CategoryInfo : InvalidOperation: (:) [Get-BrokerApplicationGroup], SdkOperationException

+ FullyQualifiedErrorId : Citrix.XDPowerShell.Broker.DataStoreException,Citrix.Broker.Admin.SDK.GetBrokerApplicationGroupCommand

368783,1,2018/07/02 13:10:07:11553,2436,1624,3,Xendesktop Management Console,_#dotNet#_,0,,1,CDF_NET_INFO,”Xendesktop Management Console:2:1:CmdletExecutionLog(1114): Script GetApplicationGroupsScript(1111): The command; Get-BrokerApplicationGroup -AdminAddress “DDCNAME:80″ -MaxRecordCount 2147483647, Took 380.21 seconds to execute”,””

368784,1,2018/07/02 13:10:07:11561,2436,1624,3,Xendesktop Management Console,_#dotNet#_,0,,1,CDF_NET_INFO,”Xendesktop Management Console:2:1:::-fd2ef0c2-3c79-45ce-8275-cef217891283:Executing Cmdlet: Get-BrokerApplicationGroup”,”

368785,1,2018/07/02 13:10:07:11574,2436,1624,3,Xendesktop Management Console,_#dotNet#_,0,,1,CDF_NET_INFO,”Xendesktop Management Console:2:1:Attempting to resolve the error DataStoreException to a resource string.”,””

368786,1,2018/07/02 13:10:07:11579,2436,1624,3,Xendesktop Management Console,_#dotNet#_,0,,1,CDF_NET_INFO,”Xendesktop Management Console:2:1:Looking for String[Citrix_XDPowerShell_SdkSdkErrorId_DataStoreException]“,””


368787,1,2018/07/02 13:10:07:11758,2436,1624,3,Xendesktop Management Console,_#dotNet#_,0,,1,CDF_NET_INFO,”Xendesktop Management Console:2:1:OperationTimer(GetApplicationGroupsScript: GetBrokerApplicationGroupCmd) : 380212.0ms”,””

Get-BrokerApplicationGroup -AdminAddress “DDCNAME:80” -MaxRecordCount 2147483647

Get-BrokerApplicationGroup : Problem occurred contacting the database

+ CategoryInfo : InvalidOperation: (:) [Get-BrokerApplicationGroup], SdkOperationException

+ FullyQualifiedErrorId : Citrix.XDPowerShell.Broker.DataStoreException,Citrix.Broker.Admin.SDK.GetBrokerApplicationGroupCommand

44614,1,2018/07/02 13:10:07:60659,3124,5752,0,BrokerController,_#dotNet#_,0,,1,CDF_NET_INFO,”BrokerController:2:1:EventLogManager decided to log event CdsEventDatabaseConnectivityLost of type Warning with arguments: ‘Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding.’ ‘System.Data.SqlClient.SqlException’.This is based on event log groups BrokerStartup.DatabaseConnectivity”,””

44627,1,2018/07/02 13:10:07:64208,3124,5752,0,BrokerFiltering,_#dotNet#_,0,,1,CDF_NET_ERROR,”BrokerFiltering:1:1:BrokerSDKLogic.GetChbCommon: Unexpected exception Citrix.Fma.Sdk.Dal.DALConnectionFailedException: Cannot connect to database server —> System.Data.SqlClient.SqlException: Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding. —> System.ComponentModel.Win32Exception: The wait operation timed out

Line 2191: 2099,1,2018/07/02 13:02:35:04848,2536,5752,0,BrokerFiltering,_#dotNet#_,0,,8,CDF_NET_INFO,”BrokerFiltering:2:8:Adding operation name GetApplicationGroup”,””

Line 19302: 17372,1,2018/07/02 13:03:47:46942,3124,5752,0,BrokerController,_#dotNet#_,0,,5,CDF_NET_ENTRY,”BrokerController:8:5:SDK >>> GetApplicationGroup”,””

Line 19316: 17386,0,2018/07/02 13:03:47:47221,4444,3576,0,DelegatedAdminLog,_#dotNet#_,0,,1,CDF_NET_INFO,”DelegatedAdminLog:2:1:CheckScopeAccessMultiple serviceType=Broker operations=GetApplicationGroup”,””

Line 19319: 17389,0,2018/07/02 13:03:47:48516,4444,3576,0,DelegatedAdminLog,_#dotNet#_,0,,1,CDF_NET_INFO,”DelegatedAdminLog:2:1:Unrestricted access granted for Broker:GetApplicationGroup”,””

Line 19324: 17394,1,2018/07/02 13:03:47:48692,3124,5752,0,BrokerController,_#dotNet#_,0,,1,CDF_NET_INFO,”BrokerController:2:1:CheckScopePermissions(‘GetApplicationGroup’) returning null (unrestricted)”,””

Line 19325: 17395,1,2018/07/02 13:03:47:48692,3124,5752,0,BrokerController,_#dotNet#_,0,,5,CDF_NET_ENTRY,”BrokerController:8:5:CheckPermission(GetApplicationGroup) returns null”,””

Line 19328: 17398,1,2018/07/02 13:03:47:48753,3124,5752,0,BrokerFiltering,_#dotNet#_,0,,5,CDF_NET_ENTRY,”BrokerFiltering:8:5:FilteringLogic.GetCommon op=GetApplicationGroup”,””

Line 19329: 17399,1,2018/07/02 13:03:47:48764,3124,5752,0,BrokerFiltering,_#dotNet#_,0,,1,CDF_NET_INFO,”BrokerFiltering:2:1:GetSqlStatement: select AG.Uid, AG.Name, (select AGDGA.Priority as I from chb_Config.DesktopGroups DG inner join chb_Config.ApplicationGroupDesktopGroupAssignments AGDGA on AGDGA.DesktopGroupUid = DG.Uid where AGDGA.ApplicationGroupUid = AG.Uid order by AGDGA.Priority, AGDGA.LastModifiedTime desc for xml path(”),root(‘Root’),elements xsinil) as _AssociatedDesktopGroupPriorities, (select DG.Uid as I from chb_Config.DesktopGroups DG inner join chb_Config.ApplicationGroupDesktopGroupAssignments AGDGA on AGDGA.DesktopGroupUid = DG.Uid where AGDGA.ApplicationGroupUid = AG.Uid order by AGDGA.Priority, AGDGA.LastModifiedTime desc for xml path(”),root(‘Root’),elements xsinil) as _AssociatedDesktopGroupUids, (select DG.UUID as I from chb_Config.DesktopGroups DG inner join chb_Config.ApplicationGroupDesktopGroupAssignments AGDGA on AGDGA.DesktopGroupUid = DG.Uid where AGDGA.ApplicationGroupUid = AG.Uid order by AGDGA.Priority, AGDGA.LastModifiedTime desc for xml path(”),root(‘Root’),elements xsinil) as _AssociatedDesktopGroupUUIDs, (select AN.CN as I from chb_Config.ApplicationGroupAccountFilter AGAF inner join chb_State.AccountNames AN on AGAF.AccountUid = AN.Uid where AGAF.ApplicationGroupUid = AG.Uid order by AN.Uid for xml path(”),root(‘Root’),elements xsinil) as _AssociatedUserFullNames, (select AN.SAMName as I from chb_Config.ApplicationGroupAccountFilter AGAF inner join chb_State.AccountNames AN on AGAF.AccountUid = AN.Uid where AGAF.ApplicationGroupUid = AG.Uid order by AN.Uid for xml path(”),root(‘Root’),elements xsinil) as _AssociatedUserNames, (select AN.UPN as I from chb_Config.ApplicationGroupAccountFilter AGAF inner join chb_State.AccountNames AN on AGAF.AccountUid = AN.Uid where AGAF.ApplicationGroupUid = AG.Uid order by AN.Uid for xml path(”),root(‘Root’),elements xsinil) as _AssociatedUserUPNs, AG.Description, AG.Enabled, (select AGMD.Name as [I/@Key], AGMD.Value as [I/text()] from chb_Config.ApplicationGroupsMetadata AGMD where AGMD.ApplicationGroupUid = AG.Uid for xml path(”),root(‘Root’),elements xsinil) as _MetadataMap, TR.Tag, AG.ScopeList, AG.SessionSharingEnabled, AG.SingleAppPerSession, (select T.Tag as I from chb_Config.ApplicationGroupTags AGT inner join chb_Config.Tags T on AGT.TagUid = T.Uid where AGT.ApplicationGroupUid = AG.Uid order by I for xml path(”),root(‘Root’),elements xsinil) as _Tags, AG.TenantId, (select count(*) from chb_Config.ApplicationApplicationGroupAssignments AAGA inner join chb_Config.Applications A on A.Uid = AAGA.ApplicationUid where AAGA.ApplicationGroupUid = AG.Uid and A.ApplicationType <> 2) as _TotalApplications, (select count(*) from chb_Config.Desktops D inner join chb_Config.DesktopGroups DG on DG.Uid = D.DesktopGroupUid inner join chb_Config.ApplicationGroupDesktopGroupAssignments AGDGA on AGDGA.DesktopGroupUid = DG.Uid where AGDGA.ApplicationGroupUid = AG.Uid) as _TotalMachines, (select count(*) from chb_Config.Desktops D inner join chb_Config.DesktopGroups DG on DG.Uid = D.DesktopGroupUid inner join chb_Config.ApplicationGroupDesktopGroupAssignments AGDGA on AGDGA.DesktopGroupUid = DG.Uid where AGDGA.ApplicationGroupUid = AG.Uid and (chb_State.WorkerSatisfiesTagRestriction(D.WorkerUid, AG.RestrictToTagUid) = 1)) as _TotalMachinesWithTagRestriction, AG.UserFilterEnabled, AG.UUID

from chb_Config.ApplicationGroups AG left outer join chb_Config.Tags TR on TR.Uid = AG.RestrictToTagUid

where (AG.IsDesktopGroup = 0)

order by AG.Name asc”,”” Line 47769: 44629,1,2018/07/02 13:10:07:65135,3124,5752,0,BrokerController,_#dotNet#_,0,,5,CDF_NET_ENTRY,”BrokerController:8:5:SDK <<< GetApplicationGroup (DataStoreException)”,””

After Creating the below Registry key Citrix Studio does give results after 6-7 minutes but for those 6-7 minutes it becomes unusable. It means waiting over 6 minutes for the Citrix Studio GUI to display information of each page like just moving between different Application Group folders.

HKEY_LOCAL_MACHINESoftwareCitrixDesktopServerDataStoreConnectionsController

Name:SdkSqlQueryTimeoutSecs

Type:REG_DWORD

Data: 600 (Decimal)

Related:

Driver Disk for Qlogic fastlinq 8.24.8.0 – For XenServer 7.1

Who Should Install this Driver Disk?

Customers running a Citrix XenServer 7.1 LTSR who use Qlogic’s fastlinq driver and wish to use the latest version of the following:

Driver Module Version
fastlinq 8.24.8.0

Issues Resolved In this Driver Disk

Includes general enhancements and bug fixes.

Note: If your device has been branded by your OEM, please ensure that you consult them regarding the currently supported driver/firmware versions.

Installing the Driver Disk

Customers should use XenServer Command Line Interface (CLI) to install this update. Once the driver has been installed, the server must be restarted. As with any software update, Citrix advises customers to back up their data before applying this driver disk.

Please note that the attachment to this article is a zip file. It contains both the driver disk ISO mentioned below, and the source code for the driver. The zip file should be unzipped (to produce the driver disk ISO image), before carrying out the steps below. The source code file is not necessary for driver disk installation: it is provided to fulfill licensing obligations.

Installing as Part of a Clean XenServer Installation

  1. After you have selected your keyboard layout at the first installer prompt, you will be presented with a welcome screen. At this point, press F9 on your keyboard, and insert the CD with the driver disk in it, or use one of the other methods such as installation over the network.

    Note: If installation over HTTP or FTP is to be used, the ISO image must be unpacked at that location (i.e. the installer expects to find the contents of the ISO at that network location, not the ISO itself).

  2. The installer will proceed to attempt to load the driver. If this is successful, you can continue with the installation as normal. Near the end of the installation, you will be prompted to re-insert the driver disk (otherwise known as a XenServer supplemental pack) so that the driver can be installed onto disk. You must re-supply the driver disk at this point. Failure to do so will mean that the installation will not contain the new drivers. After this step, no further action is required.

If the installer fails to load the new driver from the driver disk, it is likely to be because an earlier version of the driver has already been loaded. In general, this is because a hardware component is present that is supported by the version of the driver that ships as part of XenServer (even if another component is present that requires a newer version of the driver). To avoid the existing driver being loaded, use the following procedure.

  1. Reboot the host, leaving the XenServer installation CD-ROM in the drive.
  2. At the boot: prompt, type:

    shell

  3. You will now be presented with a command prompt. Type the following:

    rmmod fastlinq

    If this succeeds (i.e. there are no error messages printed), the installer’s versions of the drivers have been unloaded. If error messages are presented, it is likely that other drivers depend on one or more of the drivers you are attempting to unload. If this is the case, please contact Citrix Technical Support.

  4. Type

    exit

    or press Control+D on your keyboard, to return to the installer.

  5. Use the procedure described above to provide the driver disk to the installer, which should now load correctly.

Installing the Update by using the xe Command Line Interface

Perform the following steps to install the update remotely using the xe CLI:

  1. Download the update to a known location on a computer that has XenCenter installed.
  2. Upload the update:

    xe update-upload file-name=driver-qlogic-fastlinq-8.24.8.0.iso

    Note: The UUID of the update is returned when the upload completes.

  3. Apply the update:

    xe update-apply uuid=c5b98c15-48cb-4068-8cd7-58a100444594

  4. To complete the installation, restart the host. This ensures that the driver loads correctly.

Files

Update Files

Component Details
Filename driver-qlogic-fastlinq-8.24.8.0.iso
File sha256 257a593d5c08beee8c948e03fdced62ee6bad3f6e5cc43a295c5df3add039346
Source Filename driver-qlogic-fastlinq-8.24.8.0-sources.iso
Source File sha256 4f0d7f6faccfc7d1245e5e8638cee0c0e566993d960a5e319cb32b94c1474d36
Zip Filename driver-qlogic-fastlinq-8.24.8.0.zip
Zip File sha256 f0a6830119724d3bdfe6e8169be625b0e264ec514ba735a4ab5dc7cf2c105aaa
Size of the Zip file 141.1 MB

RPMs Provided

RPM Name
qlogic-fastlinq-8.24.8.0-1.x86_64.rpm

More Information

If you experience any difficulties, contact Citrix Technical Support.

For information on how to build driver disks, refer to Citrix XenServer ® Supplemental Packs and the DDK Guide .

Related:

  • No Related Posts

Driver Disk for Cisco enic 3.1.136.0 – For XenServer 7.x CR

Who Should Install this Driver Disk?

Customers running a Citrix XenServer Current Release 7.2 or later who use Cisco’s enic driver and wish to use the latest version of the following:

Driver Module Version
enic 3.1.136.0

Note: This driver disk has been updated in XenServer Current Release 7.6.

Issues Resolved In this Driver Disk

Includes general enhancements and bug fixes.

Note: If your device has been branded by your OEM, please ensure that you consult them regarding the currently supported driver/firmware versions.

Installing the Driver Disk

Customers should use XenServer Command Line Interface (CLI) to install this update. Once the driver has been installed, the server must be restarted. As with any software update, Citrix advises customers to back up their data before applying this driver disk.

Please note that the attachment to this article is a zip file. It contains both the driver disk ISO mentioned below, and the source code for the driver. The zip file should be unzipped (to produce the driver disk ISO image), before carrying out the steps below. The source code file is not necessary for driver disk installation: it is provided to fulfill licensing obligations.

Installing as Part of a Clean XenServer Installation

  1. After you have selected your keyboard layout at the first installer prompt, you will be presented with a welcome screen. At this point, press F9 on your keyboard, and insert the CD with the driver disk in it, or use one of the other methods such as installation over the network.

    Note: If installation over HTTP or FTP is to be used, the ISO image must be unpacked at that location (i.e. the installer expects to find the contents of the ISO at that network location, not the ISO itself).

  2. The installer will proceed to attempt to load the driver. If this is successful, you can continue with the installation as normal. Near the end of the installation, you will be prompted to re-insert the driver disk (otherwise known as a XenServer supplemental pack) so that the driver can be installed onto disk. You must re-supply the driver disk at this point. Failure to do so will mean that the installation will not contain the new drivers. After this step, no further action is required.

If the installer fails to load the new driver from the driver disk, it is likely to be because an earlier version of the driver has already been loaded. In general, this is because a hardware component is present that is supported by the version of the driver that ships as part of XenServer (even if another component is present that requires a newer version of the driver). To avoid the existing driver being loaded, use the following procedure.

  1. Reboot the host, leaving the XenServer installation CD-ROM in the drive.
  2. At the boot: prompt, type:

    shell

  3. You will now be presented with a command prompt. Type the following:

    rmmod enic

    If this succeeds (i.e. there are no error messages printed), the installer’s versions of the drivers have been unloaded. If error messages are presented, it is likely that other drivers depend on one or more of the drivers you are attempting to unload. If this is the case, please contact Citrix Technical Support.

  4. Type

    exit

    or press Control+D on your keyboard, to return to the installer.

  5. Use the procedure described above to provide the driver disk to the installer, which should now load correctly.

Installing the Update by using the xe Command Line Interface

Perform the following steps to install the update remotely using the xe CLI:

  1. Download the update to a known location on a computer that has XenCenter installed.
  2. Upload the update:

    xe update-upload file-name=driver-cisco-enic-3.1.136.0.iso

    Note: The UUID of the update is returned when the upload completes.

  3. Apply the update:

    xe update-apply uuid=8250d1cf-735f-4133-ba70-3710785560a6

  4. To complete the installation, restart the host. This ensures that the driver loads correctly.

Files

Update Files

Component Details
Filename driver-cisco-enic-3.1.136.0.iso
File sha256 cd8c5ad42cad7e72c375c74499119ccf267f6ac987e0aad12c69c9efef104336
Source Filename driver-cisco-enic-3.1.136.0-sources.iso
Source File sha256 6676a91bf2ddf17203bdaa120b091111757d6893a1043f3f4a0a5d91154ae271
Zip Filename driver-cisco-enic-3.1.136.0.zip
Zip File sha256 fc769834349f5fcf2893d165a54dfa537a800c6784efb561884ce1469acd347a
Size of the Zip file 135.31 MB

RPMs Provided

RPM Name
cisco-enic-3.1.136.0-1.x86_64.rpm

More Information

If you experience any difficulties, contact Citrix Technical Support.

For information on how to build driver disks, refer to Citrix XenServer ®Supplemental Packs and the DDK Guide .

Related:

  • No Related Posts

Driver Disk for Cisco enic 3.1.136.0 – For XenServer 7.1

Who Should Install this Driver Disk?

Customers running a Citrix XenServer 7.1 LTSR who use Cisco’s enic driver and wish to use the latest version of the following:

Driver Module Version
enic 3.1.136.0

Issues Resolved In this Driver Disk

Includes general enhancements and bug fixes.

Note: If your device has been branded by your OEM, please ensure that you consult them regarding the currently supported driver/firmware versions.

Installing the Driver Disk

Customers should use XenServer Command Line Interface (CLI) to install this update. Once the driver has been installed, the server must be restarted. As with any software update, Citrix advises customers to back up their data before applying this driver disk.

Please note that the attachment to this article is a zip file. It contains both the driver disk ISO mentioned below, and the source code for the driver. The zip file should be unzipped (to produce the driver disk ISO image), before carrying out the steps below. The source code file is not necessary for driver disk installation: it is provided to fulfill licensing obligations.

Installing as Part of a Clean XenServer Installation

  1. After you have selected your keyboard layout at the first installer prompt, you will be presented with a welcome screen. At this point, press F9 on your keyboard, and insert the CD with the driver disk in it, or use one of the other methods such as installation over the network.

    Note: If installation over HTTP or FTP is to be used, the ISO image must be unpacked at that location (i.e. the installer expects to find the contents of the ISO at that network location, not the ISO itself).

  2. The installer will proceed to attempt to load the driver. If this is successful, you can continue with the installation as normal. Near the end of the installation, you will be prompted to re-insert the driver disk (otherwise known as a XenServer supplemental pack) so that the driver can be installed onto disk. You must re-supply the driver disk at this point. Failure to do so will mean that the installation will not contain the new drivers. After this step, no further action is required.

If the installer fails to load the new driver from the driver disk, it is likely to be because an earlier version of the driver has already been loaded. In general, this is because a hardware component is present that is supported by the version of the driver that ships as part of XenServer (even if another component is present that requires a newer version of the driver). To avoid the existing driver being loaded, use the following procedure.

  1. Reboot the host, leaving the XenServer installation CD-ROM in the drive.
  2. At the boot: prompt, type:

    shell

  3. You will now be presented with a command prompt. Type the following:

    rmmod enic

    If this succeeds (i.e. there are no error messages printed), the installer’s versions of the drivers have been unloaded. If error messages are presented, it is likely that other drivers depend on one or more of the drivers you are attempting to unload. If this is the case, please contact Citrix Technical Support.

  4. Type

    exit

    or press Control+D on your keyboard, to return to the installer.

  5. Use the procedure described above to provide the driver disk to the installer, which should now load correctly.

Installing the Update by using the xe Command Line Interface

Perform the following steps to install the update remotely using the xe CLI:

  1. Download the update to a known location on a computer that has XenCenter installed.
  2. Upload the update:

    xe update-upload file-name=driver-cisco-enic-3.1.136.0.iso

    Note: The UUID of the update is returned when the upload completes.

  3. Apply the update:

    xe update-apply uuid=1733637b-ddf5-4eaa-8fec-d93f87b42b88

  4. To complete the installation, restart the host. This ensures that the driver loads correctly.

Files

Update Files

Component Details
Filename driver-cisco-enic-3.1.136.0.iso
File sha256 fe54c6f3efb1ad4e2c2b857057d987b5010029344587ac9ef2cdb6df561ff820
Source Filename driver-cisco-enic-3.1.136.0-sources.iso
Source File sha256 cf99fd32d16963b27fb52cc774d4b85625315e941fc45e44d7cc7ce04ca41594
Zip Filename driver-cisco-enic-3.1.136.0.zip
Zip File sha256 9070119909cd7902f4687286b60b32139b4908ffa95aba0e010c09d8feb9ae4b
Size of the Zip file 135.25 MB

RPMs Provided

RPM Name
cisco-enic-3.1.136.0-1.x86_64.rpm

More Information

If you experience any difficulties, contact Citrix Technical Support.

For information on how to build driver disks, refer to Citrix XenServer ®Supplemental Packs and the DDK Guide .

Related:

  • No Related Posts

Query on how TransparentKeyPassthrough affects window resize.

Working transparent key is given below,

• Determines how the mapping of certain Windows key combinations are used when

connecting to ICA sessions.

• This setting appears in the Citrix Receiver user interface under Session Options page and in

the Web Interface for Citrix XenApp Settings page.

• When Local is set, the key combinations apply to the local desktop.

• When Remote is set, the key combinations apply to seamless and non-seamless ICA

sessions when their windows have the keyboard focus.

• When FullScreenOnly is set, the key combinations apply to the non-seamless ICA session

in full screen mode.

• The default value is FullScreenOnly. When no TransparentKeyPassthrough setting in the ICA

file is passed to the ICA Engine, the keyboard transparent feature behaves as if

FullScreenOnly is set.

Related:

How to Use host-cpu-tune to Fine tune XenServer 6.2.0 Performance

Pinning Strategies

  • No Pinning (default): When no pinning is in effect, the Xen hypervisor is free to schedule domain’s vCPUs on any pCPUs.
    • Pros: Greater flexibility and better overall utilization of available pCPUs.
    • Cons: Possible longer memory access times, particularly on NUMA-based hosts. Possible lower I/O throughput and control plane operations when pCPUs are overcommitted.
    • Explanation: When vCPUs are free to run on any pCPU, they may allocate memory in various regions of the host’s memory address space. At a later stage, a vCPU may run on a different NUMA node and require access to that previously allocated data. This makes poor utilization of pCPU caches and incur in higher access times to that data. Another aspect is the impact on I/O throughput and control plane operations. When more vCPUs are being executed than pCPUs that are available, the Xen hypervisor might not be able to schedule dom0’s vCPUs when they require execution time. This has a negative effect on all operations that depend on dom0, including I/O throughput and control plane operations.
  • Exclusive Pinning: When exclusive pinning is on effect, the Xen hypervisor pins dom0 vCPUs to pCPUs in a one-to-one mapping. That is, dom0 vCPU 0 runs on pCPU 0, dom0 vCPU 1 runs on pCPU 1 and so on. Any VM running on that host is pinned to the remaining set of pCPUs.
    • Pros: Possible shorter memory access times, particularly on NUMA-based hosts. Possible higher throughput and control plane operations when pCPUs are overcommitted.
    • Cons: Lower flexibility and possible poor utilization of available pCPUs.
    • Explanation: If exclusive pinning is on and VMs are running CPU-intensive applications, they might under-perform by not being able to run on pCPUs allocated to dom0 (even when dom0 is not actively using them).

Note: The exclusive pinning functionality provided by host-cpu-tune will honor specific VM vCPU affinity configured using the VM parameter vCPU-params:mask. For more information, refer to the VM Parameters section in the appendix of the XenServer 6.2.0 Administrator’s Guide.

Using host-cpu-tune

The tool can be found in /usr/lib/xen/bin/host-cpu-tune. When executed with no parameters, it displays help:

[root@host ~]# /usr/lib/xen/bin/host-cpu-tune

Usage: /usr/lib/xen/bin/host-cpu-tune { show | advise | set <dom0_vcpus> <pinning> [–force] }

show Shows current running configuration

advise Advise on a configuration for current host

set Set host’s configuration for next reboot

<dom0_vcpus> specifies how many vCPUs to give dom0

<pinning> specifies the host’s pinning strategy

allowed values are ‘nopin’ or ‘xpin’

[–force] forces xpin even if VMs conflict

Examples: /usr/lib/xen/bin/host-cpu-tune show

/usr/lib/xen/bin/host-cpu-tune advise

/usr/lib/xen/bin/host-cpu-tune set 4 nopin

/usr/lib/xen/bin/host-cpu-tune set 8 xpin

/usr/lib/xen/bin/host-cpu-tune set 8 xpin –force

[root@host ~]#

Recommendations

The total number of pCPUs and advise as follows:

# num of pCPUs < 4 ===> same num of vCPUs for dom0 and no pinning

# < 24 ===> 4 vCPUs for dom0 and no pinning

# < 32 ===> 6 vCPUs for dom0 and no pinning

# < 48 ===> 8 vCPUs for dom0 and no pinning

# >= 48 ===> 8 vCPUs for dom0 and excl pinning

The utility works in three distinct modes:

  1. Show: This mode displays the current dom0 vCPU count and infer the current pinning strategy.

    Note: This functionality will only examine the current state of the host. If configurations are changed (for example, with the set command) and the host has not yet been rebooted, the output may be inaccurate.

  2. Advise: This recommends a dom0 vCPU count and a pinning strategy for this host.

    Note: This functionality takes into account the number of pCPUs available in the host and makes a recommendation based on heuristics determined by Citrix. System administrators are encouraged to experiment with different settings and find the one that best suits their workloads.

  3. Set: This functionality changes the host configuration to the specified number of dom0 vCPUs and pinning strategy.

    Note: This functionality may change parameters in the host boot configuration files. It is highly recommended to reboot the host as soon as possible after using this command.

    Warning: Setting zero vCPUs to dom0 (with set 0 nopin) will cause the host not to boot.

Resetting to Default

The host-cpu-tune tool uses the same heuristics as the XenServer Installer to determine the number of dom0 vCPUs. The installer, however, never activates exclusive pinning because of race conditions with Rolling Pool Upgrades (RPUs). During RPU, VMs with manual pinning settings can fail to start if exclusive pinning is activated on a newly upgraded host.

To reset the dom0 vCPU pinning strategy to default:

  1. Run the following command to find out the number of recommended dom0 vCPUs:

    [root@host ~]# /usr/lib/xen/bin/host-cpu-tune advise

  2. Configure the host accordingly, without any pinning:
    • [root@host ~]# /usr/lib/xen/bin/host-cpu-tune set <count> nopin
    • Where <count> is the recommended number of dom0 vCPUs indicated by the advise command.
  3. Reboot the host. The host will now have the same settings as it did when XenServer 6.2.0 was installed.

Usage in XenServer Pools

Settings configured with this tool only affect a single host. If the intent is to configure an entire pool, this tool must be used on each host separately.

When one or more hosts in the pool are configured with exclusive pinning, migrating VMs between hosts may change the VM's pinning characteristics. For example, if a VM are manually pinned with the vCPU-params:mask parameter, migrating it to a host configured with exclusive pinning may fail. This could happen if one or more of that VM's vCPUs are pinned to a pCPU index exclusively allocated to dom0 on the destination host.

Additional commands to obtain information concerning CPU topology:

xenpm get-cpu-topology

xl vcpu-list

Related: