Jump to content











Photo

Multi-PCs: using same o/s image with separate data image/s?


  • Please log in to reply
16 replies to this topic

#1 RCarHar

RCarHar
  • Members
  • 8 posts
  •  
    United States

Posted 11 June 2018 - 07:57 PM

Hi, I just recently got my first remote PC booting W10 residing on the WS2012R2 machine. Now I need to get the images setup for multiple PCs. As mentioned in a previous post, I am using an iSCSI vhdx target, but if I need to use one or more different image formats, that should be no problem. I just don't understand enough to extrapolate the software build for my needs:

  • up to 60 identical client PCs simultaneously booting diskless to same server
  • ideally to be able to install programs anywhere, that will appear for every client
    • i have a feeling this will require 60 o/s images, but installing software or making changes on one client needs to be reflected on all other clients somehow
  • possibly will need the ability to create and write-access user profiles & associated data directories that can be logged into any client PC

Can I achieve this with just vhdx images? or am I constraining myself by using this format?

I am willing to build a setup to network load the o/s to client RAM, if they can install programs to a network disk.



#2 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 12 June 2018 - 06:52 AM

Can I ask (only if you are willing to share this info of course) the actual reason for such a setup?

 

It sounds like you are setting up something similar to what was traditionally achieved with "thin clients", but made "extreme" by the "diskless" hardware and network booting you are planning to use.

 

Having 60 contemporary (or however overlapping) deployments of (huge) images via iSCSI (or whatever other protocol) seem at first sight what I would call "looking for troubles", so you must have some sound reasons to choose this approach. :unsure:

 

:duff:

Wonko



#3 erwan.l

erwan.l

    Platinum Member

  • Developer
  • 3041 posts
  • Location:Nantes - France
  •  
    France

Posted 12 June 2018 - 07:54 AM

Referencing the original/starting thread.



#4 erwan.l

erwan.l

    Platinum Member

  • Developer
  • 3041 posts
  • Location:Nantes - France
  •  
    France

Posted 12 June 2018 - 07:58 AM

Can you confirm that your clients are diskless?

Or are you "simply" looking for a way to install clients other the network (which is different than booting diskless installed images)?

 

If you are willing to boot disk less clients, you will have to writes your changes to memory (and lose them between each reboot) or maintain one separate file for each client (see my previous question about using difference VHD files).

 

Have a look at this rather old thread but still instructive about MS ThinPC and MS WES7.

 

Regards,

Erwan



#5 RCarHar

RCarHar
  • Members
  • 8 posts
  •  
    United States

Posted 12 June 2018 - 06:10 PM

So far, I am installing the SSD to the diskless client to perform the Windows install, then disk2vhd snapshot directly to the server's shared image folder... This has allowed me to achieve the single client diskless boot. Well, I just had a nicely detailed and bulleted comment about to post, but that has inexplicably disappeared. I can not describe how irritating this is, but I don't know the root cause... I'll be short.

 

  • 54 diskless PCs and the network infrastructure exist for a new gaming cafe.
  • i have been asked to start from scratch to build a server system to achieve similar to the owner's operational chinese gaming cafe
    • i have submitted some questions to their team through him, but we can't use the same software, thus the scratch.
    • i have also yet to hear how exactly they intend to have a customer log in, which will change the setup as well. options:
      • single client login?
      • unique customer logins to be accessed at any client?
  • i own and operate a small local device repair shop and do business IT consulting & contracting, so i have a vast tech background, but zero experience with network booting or o/s imaging & deployment; nor can i find any old friends who do, somehow..
  • i am interested in taking on this project to gain experience in PXE booting and imaging, that I could use in every day scenarios
  • i am now also interested in participating in PXE boot guide & development in whatever ways i am able.
  • the gaming platform company seems to have less experience with diskless booting than me
    • they have yet to even respond how their 'usual' systems are set up for multi-clients...
  • i am guessing the clients will require weekly if not daily image updates, however i have no idea yet how the gaming platform will handle game installs & updates. this will also potentially change the setup
  • not knowing these variables, plus my ignorance of my possibilities is really frustrating, but i feel like i am getting far.
  • need a good starting point, either using an o/s wim and/or other images for the write volumes, somehow setting up a copy on write system to have the other clients update


#6 erwan.l

erwan.l

    Platinum Member

  • Developer
  • 3041 posts
  • Location:Nantes - France
  •  
    France

Posted 17 June 2018 - 10:03 AM

Imaging a system (whether diskless or not) over the network is rather straightforward : pxe, winpe, install windows to your disk (local or not), ...

But this is a time consuming task so yo may not want to go thru that everytime you need to put up a new client.

 

Booting a system (diskless) over the network again is rather straightforward : pxe, iscsi, ...

But you are dealing with multiple clients, so here is your challenge : how to boot multiple clients with the least overhead on the server side.

 

Now, in the context of a cybercafé, a few questions you need to ask yourself :

-do you need persistence (i.e keep changes between reboots, sessions) ? would "no persistence" accomate to gaming? not sure.

-have you considered/tested differencing disks (since you have using ms iscsi target itself using vhd's)? i.e one master/parent vhd and one differencing/child vhd per client (computer).

 

Because it is a full system and not a live system (winpe like), you will most probably need one disk per client (computer).

Now, if the difference trick works, it will spare you lots of work and gigabytes.

 

/Erwan



#7 erwan.l

erwan.l

    Platinum Member

  • Developer
  • 3041 posts
  • Location:Nantes - France
  •  
    France

Posted 17 June 2018 - 10:22 AM

Quickling googling, it appears it is possible to have one parent vhd and N child vhd acting as iscsi target (and therefore used by your N clients).

Whenever you have an update to apply, you could apply it to your master and scratch all your diff files.

 

See a discussion here.

 

And with a bit of automation, rather than manually creating your diff files on the target, you could make it so that the diff file is automatically created whenever a new client (based on mac address) pops in.

But this later part (automation) is another topic.


  • bothwellw likes this

#8 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 17 June 2018 - 03:38 PM

Stiill, I would like to see the logs of the traffic generated by the simultaneous (or however overlapping) 50 or so PC's Pxe booting.

 

On any "normal" network setup that would IMHO either put on its knees the server or - even if the traffic is managed - make the whole thing extremely slow  duting the time the booting is performed by the clients.

 

Fast as it might be, the PXE booting of a single client should (I believe) be measured in minutes/seconds, not seconds/tenths of second. :unsure:

 

:duff:

Wonko



#9 erwan.l

erwan.l

    Platinum Member

  • Developer
  • 3041 posts
  • Location:Nantes - France
  •  
    France

Posted 17 June 2018 - 05:50 PM

Stiill, I would like to see the logs of the traffic generated by the simultaneous (or however overlapping) 50 or so PC's Pxe booting.

 

On any "normal" network setup that would IMHO either put on its knees the server or - even if the traffic is managed - make the whole thing extremely slow  duting the time the booting is performed by the clients.

 

Fast as it might be, the PXE booting of a single client should (I believe) be measured in minutes/seconds, not seconds/tenths of second. :unsure:

 

:duff:

Wonko

 

If they all boot at the same time, indeed, but this is unlikely.

Afterwards, bandwidth requested is not that big : starting at 10 mbs (and there is already a good average), OS will run fine.

50 * 10 mbs = 500 mbs : on a 1gb network, you should be ok.

 

Edit : an interesting article (from MS) about this topic here.

 

For reference, Microsoft internal testing indicated that a 256 computer deployment required 24x15k-RPM disks in a RAID 10 configuration for storage. A network bandwidth of 10 GB is optimal. A general estimate is 60 iSCSI boot servers per 1 GB network adapter.



#10 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 17 June 2018 - 06:38 PM

How big is the amount of data initially (and at each boot) transferred (for each client)?

 

How long does it take a single client to boot?

 

If - say - two minutes, then to have fully booted (sequentially) all the machines it would take almost two hours, if 1 minute, almost 1 hour.

 

:duff:

Wonko



#11 erwan.l

erwan.l

    Platinum Member

  • Developer
  • 3041 posts
  • Location:Nantes - France
  •  
    France

Posted 17 June 2018 - 06:57 PM

How big is the amount of data initially (and at each boot) transferred (for each client)?

 

How long does it take a single client to boot?

 

If - say - two minutes, then to have fully booted (sequentially) all the machines it would take almost two hours, if 1 minute, almost 1 hour.

 

:duff:

Wonko

 

Good point : you probably want to avoid loading more than a (very) few clients at once.

At my home place, on poor (i.e old) hardware, it takes less than a mn to boot a windows over iscsi (i use a cheap synology DS210, sata, as my iscsi target over a 1gb network) which is (to me) plenty acceptable.

For sure, if i initiate a second then a third network boot, the whole thing collapses and becomes exponentially slow.

 

Once loaded, however, I would personally not worry too much about the performances provided that you have at least a 1gb network and some fast disks on your server.

 

Thus, having clients with plenty of rams is a plus to minimize the disk IO's.

 

Also, having a 10gb card on your server would definitely be a nice plus but, for one it is expensive, and for two, you need to have at least one 10gb port on your switch (which again is not for free).



#12 bothwellw

bothwellw
  • Members
  • 6 posts
  •  
    South Africa

Posted 22 October 2018 - 11:34 PM

Quickling googling, it appears it is possible to have one parent vhd and N child vhd acting as iscsi target (and therefore used by your N clients).

Whenever you have an update to apply, you could apply it to your master and scratch all your diff files.

 

See a discussion here.

 

And with a bit of automation, rather than manually creating your diff files on the target, you could make it so that the diff file is automatically created whenever a new client (based on mac address) pops in.

But this later part (automation) is another topic. 

 

 

 

Hi

 

thanks for this, I wanted to ask if you can give me a bit of direction on how to automate the creation of a diff file for each new client that is connecting and booting ( via iscsi). I want to try this on windows server 2016. I can successfully diskless boot my clients via iscsi but not sure how to automate the  diff file bit that you mention here

 

many thanks in advance.


Edited by bothwellw, 22 October 2018 - 11:35 PM.


#13 erwan.l

erwan.l

    Platinum Member

  • Developer
  • 3041 posts
  • Location:Nantes - France
  •  
    France

Posted 28 October 2018 - 12:29 PM

Hi

 

thanks for this, I wanted to ask if you can give me a bit of direction on how to automate the creation of a diff file for each new client that is connecting and booting ( via iscsi). I want to try this on windows server 2016. I can successfully diskless boot my clients via iscsi but not sure how to automate the  diff file bit that you mention here

 

many thanks in advance.

 

Roughly and out of my mind, it would be something like that :

-have a "golden" parent vhd server side

-use ipxe as boot loader client side

-use a ipxe script calling a script (like php) executed on your server passing the mac address as parameter (ex : chain http://${next-server}/script.php)

-in your script server side, check if a diff exist for that client (based on the mac address), if not build the diff file

-boot using this diff file

 

Note that if this helps, i may be able to introduce some extra feature when TinyPXE Server could perform some actions server side (thus keeping in mind about the Wonko's "featuritis" axiom).

Thinking of something like : if a php file is requested from the TPS builtin http server, then execute it locally and send back the output to the caller...



#14 erwan.l

erwan.l

    Platinum Member

  • Developer
  • 3041 posts
  • Location:Nantes - France
  •  
    France

Posted 29 October 2018 - 02:30 PM

 

Note that if this helps, i may be able to introduce some extra feature when TinyPXE Server could perform some actions server side (thus keeping in mind about the Wonko's "featuritis" axiom).

Thinking of something like : if a php file is requested from the TPS builtin http server, then execute it locally and send back the output to the caller...

 

About the above (i.e processing scripts server side), see post here.


  • bothwellw likes this

#15 bothwellw

bothwellw
  • Members
  • 6 posts
  •  
    South Africa

Posted 29 October 2018 - 07:53 PM

Thanks a lot for your time.



#16 erwan.l

erwan.l

    Platinum Member

  • Developer
  • 3041 posts
  • Location:Nantes - France
  •  
    France

Posted 03 November 2018 - 01:19 PM

Out of curiosity and "for fun", I decided to play with network boot (pxe/iscsi) and differencing disks.

Note that I dont have a windows server at hand so my setup (Starwind San Free + Tiny PXE Server) will probably differ from yours (WS2012R2 and MS iscsi target).

However, you may find some useful/interesting items here : idea is to have multiple diskless computers boot over iscsi based on differencing disks, in a lab environement (i.e not in production).



#17 bothwellw

bothwellw
  • Members
  • 6 posts
  •  
    South Africa

Posted 03 December 2018 - 10:54 PM

Hi

 

With the latest version I am able to iscsi boot windows and dynamically assign dereference right back  disk for each client using PHP script. ( thanks again for adding this feature )

 

 

I would like to ask how I can have each windows client have its own computer. is that something I can pass or set when a client boots ?

 

 

I see here http://forum.ipxe.or...ad.php?tid=8064   they seem to be passing ${hostname} to the Linux kernel. is there an example

of doing the same on Windows ? or how can I easily dynamically set Windows computer name at boot ?

 

Many Thanks and Regards






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users