{"id":1518,"date":"2019-06-08T00:03:40","date_gmt":"2019-06-07T22:03:40","guid":{"rendered":"http:\/\/blog.sachathomet.ch\/?p=1518"},"modified":"2019-06-11T07:30:31","modified_gmt":"2019-06-11T05:30:31","slug":"machinecatalog-with-overflow","status":"publish","type":"post","link":"https:\/\/blog.sachathomet.ch\/de\/2019\/06\/08\/machinecatalog-with-overflow\/","title":{"rendered":"Maschinenkatalog mit \u00dcberlauf"},"content":{"rendered":"\n<p>Dieser Blogpost hat seine Wurzeln in einer Mittagspause des heissen Sommers 2018 als mein Kollege Stefan Moser und ich \u00fcber den Mittag einen &#8222;Aareschwumm&#8220; machten. Wir arbeiten in der Stadt Bern, welche von dem Fluss namens &#8222;Aare&#8220; umschlungen ist. Wenn es genug warm ist, kann man ca 20 Minuten am Flussufer hoch marschieren, rein springen und sich dann f\u00fcr 10 Minuten treiben lassen. W\u00e4hrend dem Weg Flussaufw\u00e4rts, hatten wir Zeit die in diesem Artikel zugegeben etwas kreative aber funktionierende L\u00f6sung zu diskutieren. Stefan fand es schade das wir vGPUs haben die nicht immer genutzt werden, auch ein normaler B\u00fcromitarbeiter ohne Spezialaufgaben soll eine GPU nutzen k\u00f6nnen. <br><br>Unsere Herausforderung also: 250 pooled non-persistent VDIs mit 100vGPUs ausstatten. Die Idee war also solange wie m\u00f6glich die guten VDIs mit vGPU herauszugeben und wenn es knapp wird auf billigere VDIs zur\u00fcckzugreifen.<br><br><br>Diese Animation zeigt den Ansatz unserer Idee:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"2667\" height=\"1500\" src=\"http:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2019\/05\/MachineCatalog_with_overflow_ANIMATION-to_convert2.gif\" alt=\"\" class=\"wp-image-1524\"\/><\/figure>\n\n\n\n<p>Die L\u00f6sung um dies technisch umzusetzen ist eigentlich simpel, sofern man die Macht von Tags kennt.<br><br><strong>Rezept:<\/strong><br>Man erstelle 2 Maschinen Kataloge, einmal mit VDI&#8217;s mit GPU und einmal ohne GPUs.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"977\" height=\"385\" src=\"http:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2019\/05\/image-1.png\" alt=\"\" class=\"wp-image-1526\" srcset=\"https:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2019\/05\/image-1.png 977w, https:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2019\/05\/image-1-300x118.png 300w, https:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2019\/05\/image-1-768x303.png 768w\" sizes=\"auto, (max-width: 977px) 100vw, 977px\" \/><\/figure>\n\n\n\n<p>Man kreiere eine Delivery Group und schr\u00e4nke die Ausgabe von Desktops auf solche mit dem Tag &#8222;availibleForUsers&#8220; ein.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"448\" height=\"191\" src=\"http:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2019\/05\/image.png\" alt=\"\" class=\"wp-image-1525\" srcset=\"https:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2019\/05\/image.png 448w, https:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2019\/05\/image-300x128.png 300w\" sizes=\"auto, (max-width: 448px) 100vw, 448px\" \/><\/figure>\n\n\n\n<p>Weiter baut man ein simples Script mit 3 Funktionen:<br>&#8211; Freie VDI&#8217;s des GPU-Katalog checken<br>&#8211; Tags &#8222;availibleForUsers&#8220; setzen<br>&#8211; Tags &#8222;availibleForUsers&#8220; entfernen sobald zu gen\u00fcgend VDIs im GPU pool sind.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"976\" height=\"360\" src=\"http:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2019\/05\/image-2.png\" alt=\"\" class=\"wp-image-1527\" srcset=\"https:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2019\/05\/image-2.png 976w, https:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2019\/05\/image-2-300x111.png 300w, https:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2019\/05\/image-2-768x283.png 768w\" sizes=\"auto, (max-width: 976px) 100vw, 976px\" \/><\/figure>\n\n\n\n<p>Das Script l\u00e4uft nun als scheduled Task z.B. alle 5 Minuten und \u00f6ffnet und schliesst der \u00dcberlauf-Pool.<\/p>\n\n\n\n<p>Nat\u00fcrlich muss man abh\u00e4ngig vom Logon-Storm etwas schauen wie viel VDI-Offset man einstellt und wie oft das Script l\u00e4uft. Bei uns haben wir 5 VDIs Buffer und das Script l\u00e4uft alle 5 Minuten. (Der Buffer wird im Script mit der Variable $FreeMachineThreshold konfiguriert)<\/p>\n\n\n\n<p><strong>Weitere Anwendungsm\u00f6glichkeiten:<br><\/strong>Erst nach der Erstellung dieses Scripts wurde uns bewusst dass dieses Konstrukt nicht nur f\u00fcr 2 Maschinen Kataloge mit\/ohne GPUs einsetzbar. Die Einsatzszenarios k\u00f6nnten viele sein, z.B.:<br><br>&#8211; Verschiedene Hardware-Typen mit unterschiedlichen Katalogen<br>&#8211; On-Prem-Ressourcen nutzen vor Cloud-Ressourcen<br>&#8211; Katalog in der eigenen Lokation nutzen bevor den einer fremden (und das ohne Zonen)<br><br>Das Script steht auf GitHub zum herunterladen oder daran mitarbeiten bereit: <a rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\" href=\"https:\/\/github.com\/sacha81\/MachineCatalogOverflow\" target=\"_blank\">https:\/\/github.com\/sacha81\/MachineCatalogOverflow<\/a><\/p>\n\n\n\n<p><strong>FAQ:<\/strong><\/p>\n\n\n\n<p><strong>Q:<\/strong> Funktioniert das mit Tags auch in Citrix Cloud?<br><strong>A:<\/strong> Ja  , auch in Citrix Cloud k\u00f6nnen Tags verwendet werden. <br>(Danke <a rel=\"noreferrer noopener\" href=\"http:\/\/twitter.com\/bjoernmue\" target=\"_blank\">@bjoernmue<\/a> f\u00fcr diese Info)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dieser Blogpost hat seine Wurzeln in einer Mittagspause des heissen Sommers 2018 als mein Kollege Stefan Moser und ich \u00fcber den Mittag einen &#8222;Aareschwumm&#8220; machten. Wir arbeiten in der Stadt Bern, welche von dem Fluss namens &#8222;Aare&#8220; umschlungen ist. Wenn es genug warm ist, kann man ca 20 Minuten am Flussufer hoch marschieren, rein springen [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,8],"tags":[63,62],"class_list":["post-1518","post","type-post","status-publish","format-standard","hentry","category-guide","category-scripts","tag-nvidia","tag-vgpu"],"translation":{"provider":"WPGlobus","version":"3.0.2","language":"de","enabled_languages":["en","de"],"languages":{"en":{"title":true,"content":true,"excerpt":false},"de":{"title":true,"content":true,"excerpt":false}}},"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/blog.sachathomet.ch\/de\/wp-json\/wp\/v2\/posts\/1518","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.sachathomet.ch\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.sachathomet.ch\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.sachathomet.ch\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.sachathomet.ch\/de\/wp-json\/wp\/v2\/comments?post=1518"}],"version-history":[{"count":42,"href":"https:\/\/blog.sachathomet.ch\/de\/wp-json\/wp\/v2\/posts\/1518\/revisions"}],"predecessor-version":[{"id":1633,"href":"https:\/\/blog.sachathomet.ch\/de\/wp-json\/wp\/v2\/posts\/1518\/revisions\/1633"}],"wp:attachment":[{"href":"https:\/\/blog.sachathomet.ch\/de\/wp-json\/wp\/v2\/media?parent=1518"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.sachathomet.ch\/de\/wp-json\/wp\/v2\/categories?post=1518"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.sachathomet.ch\/de\/wp-json\/wp\/v2\/tags?post=1518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}