R
R
Romk_Ride2019-10-15 10:25:20
Windows
Romk_Ride, 2019-10-15 10:25:20

Why do diskless clients take a long time to load via iSCSi?

The iSCSi server is MS Server 2016 Standard. Raised:
- DHCP (sends network settings, sends information - from where and what file to download (menu.lst config), which indicates possible boot options),
- WDS (sends menu.lst a list of possible boot options (grub). Boot option is one , namely the file containing all the information about the connection parameters to iSCSi)
- iSCSi (3 system images for 3 clients. Each image has its own purpose).
As a bootable system - Windows 7 Professional x64 sp1.
iPXE config:
#!ipxe
dhcp net0
set net0/gateway 192.168.1.111
set keep-san 1
sanboot iscsi:192.168.1.111::::iqn.romo
(Ps The third line is due to the fact that the Internet gateway (192.168.1.1) and the iSCSi server (192.168.1.111) are different machines. Without this parameter, the download does not work at all and rests on the blue screen 7b;
the last line is different for each of the computers, the iqn goal changes so that each computer boots from its own image, and not three from one.)
The network is gigabit, 80 megabytes per second one way flies confidently.
The problem is that the system hangs for a long time on the start animation of windows 7, that is, on multi-colored petals. Because of this delay, the download takes about 3 minutes, I didn’t measure it exactly. At the very beginning, I conducted experiments on virtual machines on which the server role was assigned to Server 2008, instead of WDS and dhcp there was the Tftpd64 program. The situation with long loading was the same. Then he transferred everything to physical machines and newer software, the situation has not changed. It's definitely not about the hardware - on the high-speed SSD server, the network works as it should. AND! As soon as this stage passes - everything starts to fly. Programs open quickly, no delays in work. If you do not tell the user that everything is loaded over the network, the user believes that the system has a ssd (I'm not exaggerating).
I assume that the whole point is still in the content of the iPXE config. I ask for the help of those who have dealt with a similar construction of a diskless boot system.

Answer the question

In order to leave comments, you need to log in

3 answer(s)
R
Romk_Ride, 2019-10-24
@Romk_Ride

I took it off, looked at it, I can’t bring this information to specific conclusions and decisions yet. The situation is as follows: For almost 2 minutes (105 seconds, to be more precise) at startup, the system does nothing at all. After this time, the loading system shows signs of life and quickly completes the process. The most important points: (in the third photo, the Disk IO parameter is highlighted in dark green)
Initialization time (as I understand it) of system files:
From this photo you can see that at the very beginning rdyboost.sys is loaded first, then there is a long pause, after which it loads msiscsi.sys and everything else in no time.
If you look at the server itself, you will notice the following: as soon as ipxe is initialized and transferred to the Windows loader, the server shows that there is a connection to the target. After about 10 seconds, the status is translated into "not connected". On the client, at this moment, I observe an already converging pulsating picture of windows with the inscription Windows 7 below. For about a minute and a half, nothing changes. And now, after this time, the target status is again transferred to connected, and the client begins to show signs of continuing the download.
Reflecting on all sorts of reasons, I did the following:
-Reduced the need to start rdyboost.sys from the mandatory (Start parameter in the registry) "0" to the on-demand "3" (blue screen 7b)
-Changed the need to run msiscsi.sys to mandatory 0 (by default 3) (did not give a result)
-Created a group of drivers, added to this group everything that belongs to iscsi in system drivers (iscsiprt, msiscsi) set this group as high as possible in system file group priority list. Got up right after Boot Bus Extender. If you set the group higher, almost at the very beginning of the attempt to boot, a blue screen 7b crashes. (no result)
-In the parameter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Disk "TimeOutValue" changed the value from 60 s. up to 15 s. Assuming the system tries to poll the hard drive first (which doesn't exist), giving some timeout to retry the request. (no result)
-Downloaded another ipxe.krn file, assuming that there might be something wrong with it. (visually, the loading at the ipxe initialization stage has changed a little, the system takes just as long to load)
SOLUTION crept up unnoticed:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Psched
Start change from 1 to 0.
New data:
Boot phases
Processes
5db47b0b70b76201483240.png

V
vreitech, 2019-10-15
@fzfx

do boot profiling: remove the boot trace and check what slows down the process.
https://habr.com/ru/post/106684/

-
-=TuXaPb=-, 2020-01-13
@Storozh2005

Romk_Ride

SOLUTION crept up unnoticed: change
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Psched
Start from 1 to 0.

You can do it more competently from the point of view of a real computer system administrator (IMHO):
1. Return the Start value to 1 -> reboot;
2. After restarting the computer, launch the command line with administrator rights (Start menu -> type cmd (in English) -> RMB ( Right Mouse Button ) on the cmd line that appears and click LMB ( Left Button M click) on the drop-down menu line "Run as administrator"(Run as administrator) -> a command prompt window will appear); at the command line, type gpedit.msc , press the "Enter" key on the keyboard -> the " Local Group Policy Editor" window will appear (and then there will also be the names of the menu items in Russian, and in brackets their corresponding titles in English); the command line does not need to be closed;
3. In the left part of the window: " Computer Configuration" -> "Administrative Templates" -> "Network" -> " QoS Packet Scheduler";" Limit reservable bandwidth" -> RMB -> "Edit" (Edit) -> "Enable" (Enabled) -> lower the value of the variable "Bandwidth limit (%):" (Bandwidth limit (% :) :) from 20 to 0(zero) -> "Apply" (Apply) -> "OK" ;
4. It is desirable to change the value of one more variable in the "Local Group Policy Editor " snap -in. On the left side of the window: " Computer Configuration" -> "Windows Configuration"(Security Settings) -> "Local Policies" (Local Policies) -> "Security Options" (Security Options) -> " Network security: LAN Manager authentication level" variable -> RMB - > "Edit" (Edit) -> in the drop-down list, select "Send LM and NTLM - use NTLMv2 session security when negotiated" (Send LM & NTLM - use NTLMv2 session security if negotiated) -> "Apply" (Apply) -> " OK" ; equipment can be closed;
5."Enter" (Enter) -\u003e wait for the policies to be applied to the computer and user -\u003e after that reboot;
6. "Control Panel" (Control Panel) -\u003e in the upper right corner of the window, select the view "Large icons" (Large icons) or "Small icons" (Small icons) -\ u003e "Network and Sharing Center" (Network and Sharing Center) -> in the upper left corner of the window, click LMB (single click) on "Change adapter settings" (Change adapter settings) -> select LMB (single click) network adapter -> RMB -> "Properties" (Properties) ->" QoS Packet Scheduler" and " Internet Protocol Version 6 (TCP/IPv6)" -> LMB (single click) on OK at the bottom of the window.
Everything. Yes, I understand that in this case (approach) you need to do too many "body movements", but, I repeat, it's more correct from the point of view of a real computer system administrator than to look for where the "dog rummaged" (IMHO).

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question