admintop

admintop

AdminTOP - Sистемное администрирование многокомпонентного вычислительного комплекса
Пикабушник
96 рейтинг 3 подписчика 2 подписки 4 поста 0 в горячем
Награды:
5 лет на Пикабу

Бэкап сайта

Данная инструкция будет полезна начинающим веб разработчикам, чтобы изолироваться от скрупулезной подготовки программного окружения и сосредоточиться на программировании. Перечисленные шаги позволят без труда сделать из любого ПК веб сервер и возобновить свою работу, в случае непредвиденных обстоятельств.


Как сделать бэкап сайта?

Как установить веб сервер на Linux?

Как установить веб сервер на Windows?


Бэкап сайта


Название сайта — sitename.ru

Название архива с сайтом — content.tar

Название файла с дампом базы — basename.sql

IP адрес локального ПК — 192.168.1.10

Имя пользователя mysql — username

Пароль пользователя mysql — userpassword

Название базы mysql — basename


Для переноса сайта сохраним базу в sql формате и заархивируем контент в tar.

$ mysqldump -u user -p basename > basename.sql
$ tar -cvf content.tar /var/www/html

Если SSH доступа к хостингу сайта нет, то сделаем тоже самое через web интерфейс базы, например phpmyadmin и скачаем контент через ftp.


Веб сервер для Linux

$ firewall-cmd --permanent --add-service=http
$ firewall-cmd --permanent --add-service=https
$ firewall-cmd --complete-reload
$ yum install epel-release
$ yum install httpd yum-utils
$ yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
$ yum-config-manager --enable remi-php75
$ yum install php php-mysql
$ cat /etc/httpd
ServerRoot "/etc/httpd"
Listen 80
Include conf.modules.d/*.conf
User apache
Group apache
ServerAdmin root@localhost
ServerName 192.168.1.10:80
<Directory />
AllowOverride All
Require all granted
</Directory>
DocumentRoot "/var/www/html"
<Directory "/var/www/html">
Options Indexes FollowSymlinks ExecCGI
AllowOverride All
Require all granted
</Directory>
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
<Files ".ht*">
Require all denied
</Files>
ErrorLog "logs/error_log"
LogLevel warn
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
# CustomLog "logs/access_log" common
CustomLog "logs/access_log" combined
</IfModule>
<IfModule mime_module>
TypesConfig /etc/mime.types
AddType application/x-gzip .tgz
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
AddEncoding x-compress .Z
AddEncoding x-gzip .gz .tgz
</IfModule>
AddDefaultCharset UTF-8
<IfModule mime_magic_module>
MIMEMagicFile conf/magic
</IfModule>
IncludeOptional conf.d/*.conf
<VirtualHost *:80>
ServerAdmin root@localhost
DocumentRoot /var/www/html
ServerName sitename.ru
</VirtualHost>
$ systemctl enable httpd
$ systemctl start httpd
$ systemctl status httpd
$ systemctl enable mysqld
$ systemctl start mysqld
$ systemctl status mysqld
$ mysql
mysql> create database basename;
mysql> drop database basename;
mysql> create user 'username'@'localhost' identified by 'userpassword';
$ exit;
$ mysql -u username -p basename < basename.sql
$ mysql
mysql> grant all on basename.* to 'username' identified by 'userpassword';
mysql> show databases;
mysql> use basename;
mysql> show tables;
mysql> exit;
$ cp content.tar /var/www
$ cd /var/www
$ tar -xvf content.tar
$ firefox
sitename.ru

1-3. Настроим фаервол

4-8. Установим пакеты, необходимые для установки веб сервера httpd и сервера mysql

9. Пример настроек httpd с вырезанными комментариями

16. IP адрес компьютера

59-63. Виртуальный хост, на случай, если потребуется хостить несколько сайтов

64-69. Запускаем сервисы

71-72. Тренируемся

73. Создадим пользователя, аналогичного тому, что имеет доступ к оригиналу базу. Обычно его имя и пароль указаны в конфигурационном файле, который находится в архивируемой папке html

75. Импортируем базу

77. Назначаем права пользователю для работы с таблицами из этой базы

78-81. Проверяем содержимое базы

82-84. Копируем контент

85. Проверяем доступ к сайту в браузере


Веб сервер для Windows


Скачаем и установим OSPanel Ultimate.


Скопируем content.tar в директорию с сайтами installpath/Open server/OSPanel/domains. Разархивируем content.tar и переименуем html в sitename.ru.


Запустим Open Server и перейдем в phpmyadmin, логин root без пароля.

Импортируем базу basename.sql

Перезапустим Open Server и проверим наш сайт.

Показать полностью 3
10

Сетевая установка Linux

Недавно столкнулся с установкой Centos 7 в необычных условиях.


Во-первых, дома. То есть имел дело с локальными компьютером, а не с сервером с IPMI.


Во-вторых, за неимением дискового привода обычно использую загрузочную флешку, которая в данном случае оказалась бесполезной, так как новый компьютер загружается только с флешек с инсталятором Windows. Проблема не новая, судя по отзывам о материнской плате.


В моем распоряжении осталась сеть. Приведу пример установки Centos 7 по PXE и iPXE


Итак, начнем.


Как установить Linux через ipxe?

Как установить Linux через pxe?


Установка через PXE


Соединим ethernet кабелем компьютер1 — на котором будут DHCP, TFTP и компьютер2 — на который должна быть установлена ОС.


Добавим статичные настройки сетевого адаптера на компьютер1. Мой адрес 192.168.1.50.


Скачаем и установим TFTP. В этой программе настроим DHCP и TFTP сервер с которого отдадим IP адрес и установочные файлы компьютеру2.


Отключим брандмауэр и запустим tftpd с правами администратора. Выставим аналогичные установки, как на картинках. Возможно потребуется перезапуск tftpd.

На компьютере2 в boot меню выберем сетевой адаптер. В окне tftpd на компьютере1 будет отображаться шкала прогресса.


После этого, на компьютере2 загрузится окно инсталлятора ОС.


Установка Linux через iPXE


Скачаем образ ipxe.iso. Rufus-ом создадим загрузочную флешку на основе этого образа.


Выложим скрипт install.ipxe на любой веб сервер. О том, как поднять веб сервер на локальном компьютере можно узнать тут. Адрес моего скрипта будет таким sitename.ru/install.ipxe


Содержимое скрипта install.ipxe для установки Centos 7

#!ipxe
set base http://mirror.centos.org/centos/7/os/x86_64
prompt -k 0x197e -t 2000 Press F12 to install CentOS... || exit
kernel ${base}/images/pxeboot/vmlinuz initrd=initrd.img repo=${base}
initrd ${base}/images/pxeboot/initrd.img
boot

По аналогии с этим скриптом для установки Centos 7, можете подготовить свой скрипт для установки другой ОС.


Соединим компьютер, на который необходимо установить Linux, и роутер ethernet кабелем. Вставим флешку и загрузимся с нее. После нажатия F12 появится ipxe консоль. Используем следующие команды для получения IP адреса и скачивания скрипта

iPXE> dhcp
DHCP (net0 52:54:00:12:34:56).... ok
iPXE> chain http://sitename.ru/install.ipxe

После этого загрузится окно инсталлятора ОС.

Показать полностью 3

Установка GPU версии HPL с OpenBLAS

admintop.ru

instagram.com/admintop.ru

vk.com/4dmintop


Для попадания в список ТОП 50, 100, 500 HPC (High Performance Computing) комплексов подходят результаты тестирования, полученные с помощью бенчмарка HPL (High Performance Linpack).


Бенчмарк Linpack (Linear Algebra PACKage) реализует алгоритм решения СЛАУ методом LU разложения. Этот пакет общедоступен, прост в установке и запуске. Хорошо подходит для демонстрации производительности CPU.


Все, кто знаком с архитектурой графических ускорителей могут предположить, что еще лучше этот пакет подойдет для тестирования вычислительных устройств с архитектурой GPU. Однако, в сети доступна для скачивания версия 2011 года, с CUDA под архитектуру Fermi.


В данном руководстве я приведу пример сборки и запуска HPL для GPU.


Как управлять доступом к ПО?

Как установить CUDA?

Как установить OpenMPI?

Как установить OpenBLAS?

Как установить HPL для GPU?


Установка пакета MODULES


Для управления переменными окружения установим пакет MODULES и подготовим тестовый модуль файл.

$ yum install environment-modules
$ mcedit /etc/modulefailes/test/v1.0
#%Module1.0
proc ModulesHelp { } {
global version
puts stderr "Modulefile for test v1.0"
}
set version v1.0
module-whatis "Modulefile for test v1.0"
# Our environment
setenv MAINDIR /nfs/software/test/v1.0
prepend-path PATH $env(MAINDIR)/bin
prepend-path C_INCLUDE_PATH $env(MAINDIR)/include
prepend-path CPLUS_INCLUDE_PATH $env(MAINDIR)/include
prepend-path LIBRARY_PATH $env(MAINDIR)/lib64
prepend-path LD_LIBRARY_PATH $env(MAINDIR)/lib64

Проверка модуль файлов


Вероятность допустить ошибку при подготовке модуля довольно велика. Поэтому я провожу проверку всех путей, указанных в модуль-файле. Чтобы не проверять каждый путь вручную я подготовил скрипт. Если 0, то путь корректный.

$ cat check-modulefiles
#!/bin/sh
ModulePath=$1
MainDir=$(cat $ModulePath | grep "setenv MAINDIR" | cut -f7 -d " ")
ListOfPaths=$(cat $ModulePath | grep path | cut -f7 -d " ")
#Replace MainDir setenv in modulefile
ListOfPaths=$(echo $ListOfPaths | sed "s@\$env(MAINDIR)@$MainDir@g")
for u in $ListOfPaths; do
ls -la $u 1> /dev/null 2> /dev/null;
printf "%60s %4d\n" $u $?;
done
$ chmod +x check-modulefiles
$ ./check-modulefiles /etc/modulefiles/test/v1.0
/nfs/software/test/v1.0/bin 0
/nfs/software/test/v1.0/include 0
/nfs/software/test/v1.0/include 0
/nfs/software/test/v1.0/lib64 0
/nfs/software/test/v1.0/lib64 0

Команды управление модулями

$ module avail
$ module add cuda/v10.1
$ nvcc –version
Cuda compilation tools, release 10.1, V10.1.168
$ module switch cuda/v10.1 cuda/v9.2
$ nvcc –version
Cuda compilation tools, release 9.2, V9.2.88
$ module list
$ module rm cuda/v9.2

1. Посмотрим список доступных для подключения модулей

2. Подключим модуль

3-4. Проверим версию

5. Поменяем модуль

6-7. Проверим версию

8. Посмотрим список подключенных модулей

9. Удалим модуль из списка подключенных


Установка CUDA


Скачать CUDA 9.2 для Centos 7 можно тут.


$ chmod +x cuda_9.2.run
$ ./cuda_9.2.run
Do you accept the previously read EULA? accept
Install the CUDA 9.2 Toolkit? yes
Enter Toolkit Location: /nfs/software/cuda/v9.2
Do you want to install a symbolic link at /usr/local/cuda? no
Install the CUDA 9.2 Samples? no
$ cat /etc/modulefiles/cuda/v9.2
#%Module1.0
proc ModulesHelp { } {
global version
puts stderr "Modulefile for cuda v9.2"
}
set version v9.2
module-whatis "Modulefile for cuda v9.2"
# Our environment
setenv MAINDIR /nfs/software/cuda/v9.2
prepend-path PATH $env(MAINDIR)/bin
prepend-path C_INCLUDE_PATH $env(MAINDIR)/include
prepend-path CPLUS_INCLUDE_PATH $env(MAINDIR)/include
prepend-path LIBRARY_PATH $env(MAINDIR)/lib64/stubs
prepend-path LIBRARY_PATH $env(MAINDIR)/lib64
prepend-path LD_LIBRARY_PATH $env(MAINDIR)/lib64/stubs
prepend-path LD_LIBRARY_PATH $env(MAINDIR)/lib64
$ module add cuda/v9.2
$ nvcc --version
Cuda compilation tools, release 9.2, V9.2.148

Установка OpenBLAS

$ wget https://github.com/xianyi/OpenBLAS/archive/v0.3.6.tar.gz
$ tar -xzvf v0.3.6.tar.gz
$ cd OpenBLAS-0.3.6
$ mkdir -p /nfs/software/openblas/v0.3.6
$ make -j4
$ make PREFIX=/nfs/software/openblas/v0.3.6/ install
$ ls -la /nfs/software/openblas/v0.3.6/lib/
$ cat /etc/modulefiles/openblas/v0.3.6
#%Module1.0
proc ModulesHelp { } {
global version
puts stderr "Modulefile for openblas v0.3.6"
}
set version v0.3.6
module-whatis "Modulefile for openblas v0.3.6"
# Our environment
setenv MAINDIR /nfs/software/openblas/v0.3.6
prepend-path PATH $env(MAINDIR)/bin
prepend-path C_INCLUDE_PATH $env(MAINDIR)/include
prepend-path CPLUS_INCLUDE_PATH $env(MAINDIR)/include
prepend-path LIBRARY_PATH $env(MAINDIR)/lib
prepend-path LD_LIBRARY_PATH $env(MAINDIR)/lib
$ ls -la /nfs/software/openblas/v0.3.6/lib

Установка OpenMPI

$ wget https://download.open-mpi.org/release/open-mpi/v2.1/openmpi-...
$ tar -xzvf openmpi-2.1.6.tar.gz
$ cd openmpi-2.1.6
$ mkdir -p /nfs/software/openmpi/v2.1.6
$ module add cuda/v9.2
$ ./configure --prefix=/nfs/software/openmpi/v2.1.6/ --with-cuda --enable-static
$ make
$ make install
$ cat /etc/modulefiles/openmpi/v2.1.6
#%Module1.0
proc ModulesHelp { } {
global version
puts stderr "Modulefile for openmpi v2.1.6"
}
set version v2.1.6
module-whatis "Modulefile for openmpi v2.1.6"
# Our environment
setenv MAINDIR /nfs/software/openmpi/v2.1.6
prepend-path PATH $env(MAINDIR)/bin
prepend-path C_INCLUDE_PATH $env(MAINDIR)/include
prepend-path CPLUS_INCLUDE_PATH $env(MAINDIR)/include
prepend-path LIBRARY_PATH $env(MAINDIR)/lib
prepend-path LD_LIBRARY_PATH $env(MAINDIR)/lib
$ module add openmpi/v2.1.6
$ mpirun --version
mpirun (Open MPI) 2.1.6

Установка HPL для GPU


Настроим переменные окружения подключив модули и скачаем HPL 2.0.

$ module add openmpi/v2.1.6
$ module add cuda/v9.2
$ module add openblas/v0.3.6
$ wget https://developer.download.nvidia.com/assets/cuda/secure/Acc...
$ tar -xvf hpl-2.0_FERMI_v15.tgz
$ mv hpl-2.0_FERMI_v15.tgz hpl-2.0
$ cd hpl-2.0

Перед сборкой следует отредактировать несколько файлов. Первым будет Make.CUDA в директории hpl-2.0. Скопируем следующий код в Make.CUDA:

$ cat Make.CUDA
SHELL = /bin/sh
CD = cd
CP = cp
LN_S = ln -fs
MKDIR = mkdir -p
RM = /bin/rm -f
TOUCH = touch
ARCH = CUDA
TOPdir = /home/user/hpl-2.0
INCdir = $(TOPdir)/include
BINdir = $(TOPdir)/bin/$(ARCH)
LIBdir = $(TOPdir)/lib/$(ARCH)
HPLlib = $(LIBdir)/libhpl.a
MPdir = /nfs/software/openmpi/v2.1.6
MPinc = -I$(MPdir)/include
MPlib = -L$(MPdir)/lib -lmpi
LAdir = /nfs/software/openblas/v0.3.6
LAinc = -I$(LAdir)/include
LAlib = -L$(TOPdir)/src/cuda -ldgemm -L/nfs/software/cuda/v9.2/lib64 -lcuda -lcudart -lcublas -L$(LAdir)/lib -lopenblas
F2CDEFS = -DAdd__ -DF77_INTEGER=int -DStringSunStyle
HPL_INCLUDES = -I$(INCdir) -I$(INCdir)/$(ARCH) $(LAinc) $(MPinc)
HPL_LIBS = $(HPLlib) $(LAlib) $(MPlib)
HPL_OPTS = -DCUDA
HPL_DEFS = $(F2CDEFS) $(HPL_OPTS) $(HPL_INCLUDES)
CC = mpicc
CCFLAGS = -fopenmp -lpthread -fomit-frame-pointer -O3 -funroll-loops $(HPL_DEFS)
CCNOOPT = $(HPL_DEFS) -O0 -w
LINKER = $(CC)
LINKFLAGS = $(CCFLAGS)
ARCHIVER = ar
ARFLAGS = r
RANLIB = echo
MAKE = make TOPdir=$(TOPdir)

11. Путь до директории hpl-2.0

17. Путь до OpenMPI

21. Путь до OpenBLAS

23. Путь до CUDA lib64


Заменим в файле hpl-2.0/src/cuda/cuda_dgemm.c следующие строки:

$ mcedit src/cuda/cuda_dgemm.c

// handle2 = dlopen ("libmkl_intel_lp64.so", RTLD_LAZY);
handle2 = dlopen ("libopenblas.so", RTLD_LAZY);

// dgemm_mkl = (void(*)())dlsym(handle, "dgemm");
dgemm_mkl = (void(*)())dlsym(handle, "dgemm_");

// handle = dlopen ("libmkl_intel_lp64.so", RTLD_LAZY);
handle = dlopen ("libopenblas.so", RTLD_LAZY);

// mkl_dtrsm = (void(*)())dlsym(handle2, "dtrsm");
mkl_dtrsm = (void(*)())dlsym(handle2, "dtrsm_");

Соберем и запустим HPL на 4x GPU:

$ make arch=CUDA
$ cd bin/CUDA
$ export LD_LIBRARY_PATH=/home/user/hpl-2.0/src/cuda/:$LD_LIBRARY_PATH
$ mpirun -np 4 ./xhpl
================================================================================
HPLinpack 2.0 -- High-Performance Linpack benchmark -- September 10, 2008
Written by A. Petitet and R. Clint Whaley, Innovative Computing Laboratory, UTK
Modified by Piotr Luszczek, Innovative Computing Laboratory, UTK
Modified by Julien Langou, University of Colorado Denver
================================================================================
An explanation of the input/output parameters follows:
T/V : Wall time / encoded variant.
N : The order of the coefficient matrix A.
NB : The partitioning blocking factor.
P : The number of process rows.
Q : The number of process columns.
Time : Time in seconds to solve the linear system.
Gflops : Rate of execution for solving the linear system.
The following parameter values will be used:
N : 25000
NB : 768
PMAP : Row-major process mapping
P : 2
Q : 2
PFACT : Left
NBMIN : 2
NDIV : 2
RFACT : Left
BCAST : 1ring
DEPTH : 1
SWAP : Spread-roll (long)
L1 : no-transposed form
U : no-transposed form
EQUIL : yes
ALIGN : 8 double precision words
--------------------------------------------------------------------------------
- The matrix A is randomly generated for each test.
- The following scaled residual check will be computed:
||Ax-b||_oo / ( eps * ( || x ||_oo * || A ||_oo + || b ||_oo ) * N )
- The relative machine precision (eps) is taken to be 1.110223e-16
- Computational tests pass if scaled residuals are less than 16.0
================================================================================
T/V N NB P Q Time Gflops
--------------------------------------------------------------------------------
WR10L2L2 25000 768 2 2 16.72 6.232e+02
--------------------------------------------------------------------------------
||Ax-b||_oo/(eps*(||A||_oo*||x||_oo+||b||_oo)*N)= 0.0019019 ...... PASSED
================================================================================
Finished 1 tests with the following results:
1 tests completed and passed residual checks,
0 tests completed and failed residual checks,
0 tests skipped because of illegal input values.
--------------------------------------------------------------------------------
End of Tests.
================================================================================
Показать полностью
5

Удаленный доступ к ВМ с GPU с помощью Citrix

admintop.ru

instagram.com/admintop.ru

facebook.com/admintopru

vk.com/4dmintop

ok.ru/admintop


В данном руководстве подробно описаны шаги, которые необходимо выполнить при подготовке удаленного доступа к виртуальным рабочим столам с помощью технологии, которую предлагает компания Citrix.


Оно будет полезно тем, кто недавно познакомился с технологией виртуализации рабочих столов, так как является сборником полезных команд, собранных из ~10 мануалов, многие из которых доступны на сайтах Citrix, Nvidia, Microsoft, после авторизации.


Данная реализация содержит этапы подготовки удаленного доступа к виртуальным машинам (ВМ) с графическими ускорителями Nvidia Tesla M60 и операционной системой Centos 7.


Итак, начнём.


Подготовка гипервизора для хостинга виртуальных машин


Как скачать и установить XenServer 7.4?

Как добавить XenServer в Citrix XenCenter?

Как скачать и установить Nvidia драйвер?

Как изменить режим Nvidia Tesla M60?

Как примонтировать хранилище?


Установка XenServer 7.4


Ссылка для скачивания XenServer 7.4 доступна, после авторизации на сайте Citrix.

Выполним установку XenServer.iso на сервер с 4x NVIDIA Tesla M60 штатным способом. В моем случае iso монтируется через IPMI. Для серверов Dell управление контроллером BMC выполняется через IDRAC. Этапы установки практически совпадают с установкой Linux подобных ОС.


Мой адрес XenServer c GPU — 192.168.1.100


Установим XenCenter.msi на локальный компьютер, с которого будем управлять гипервизорами и виртуальными машинами. Добавим туда сервер с GPU и XenServer, нажав по вкладке «Server», затем «Add». Введем логин и пароль root, указанный при установке XenServer.

В XenCenter, после нажатия по имени добавленного гипервизора, будет доступна вкладка «Console». В меню выберем «Remote Service Configuration» и включим авторизацию по SSH — «Enable/Disable Remote Shell».


Установка дравера NVIDIA


Дам волю эмоциям и скажу, что за всё время работы с vGPU я ни разу не зашел на сайт nvid.nvidia.com с первой попытки. Если авторизация не будет работать, то рекомендую Internet Explorer.


Скачаем zip c vGPU, а так же GPUMode Change Utility:


NVIDIA-GRID-XenServer-7.4-390.72-390.75-391.81.zip

NVIDIA-gpumodeswitch-2020-01.zip

Следим за версиями. В названии скаченного архива указана версия подходящих драйверов NVIDIA, которые можно в дальнейшем устанавливать на виртуальные машины. В моем случае это 390.72.


Перекидываем zip-ы на XenServer и распаковываем.

Поменяем режим GPU и установим драйвер vGPU


$ cd NVIDIA-gpumodeswitch-2020-01
$ gpumodeswitch --listgpumodes
$ gpumodeswitch --gpumode graphics
$ cd ../NVIDIA-GRID-XenServer-7.4-390.72-390.75-391.81
$ yum install NVIDIA-vGPU-xenserver-7.4-390.72.x86_64.rpm
$ reboot

Настройка общей директории


Настроим общую директорию с помощью NFS на любом компьютере в сети.


$ yum install epel-release
$ yum install nfs-utils libnfs-utils
$ systemctl enable rpcbind
$ systemctl enable nfs-server
$ systemctl enable nfs-lock
$ systemctl enable nfs-idmap
$ systemctl start rpcbind
$ systemctl start nfs-server
$ systemctl start nfs-lock
$ systemctl start nfs-idmap
$ firewall-cmd --permanent --zone=public --add-service=nfs
$ firewall-cmd --permanent --zone=public --add-service=mountd
$ firewall-cmd --permanent --zone=public --add-service=rpc-bind
$ firewall-cmd --reload
$ mkdir -p /nfs/store1
$ chmod -R 777 /nfs/store1
$ touch /nfs/store1/forcheck
$ cat /etc/exports
...
/nfs/store1 192.168.1.0/24(rw,async,crossmnt,no_root_squash,no_all_squash,no_subtree_check)
$ systemctl restart nfs-server

В XenCenter выберем XenServer и на вкладке «Storage» выберем «New SR». Укажем тип хранилища — NFS ISO. Путь должен указывать на общую директорию NFS.


Подготовка Master Image на основе Centos 7


Как создать виртуальную машину с Centos 7?

Как подготовить виртуальную машину для создания каталога?

Образ Centos 7


С помощью XenCenter создадим виртуальную машину с GPU. В вкладке «VM» нажмем «New VM».

Выбираем необходимые параметры:

VM template — Other install media

Name — template

Install from ISO library — Centos 7 (скачать), выбираем из примонтированного хранилища NFS ISO.

Number of vCPUs — 4

Topology — 1 socket with 4 cores per socket

Memory — 30 Gb

GPU type — GRID M60-4Q

Use this virtual disk — 80 Gb

Network


После создания, виртуальная машина появится в вертикальном списке слева. Нажмём на нее и перейдём во вкладку «Console». Дождемся загрузки инсталятора Centos 7 и выполним необходимые шаги для установки ОС с оболочкой GNOME.


Подготовка образа


Подготовка образа с Centos 7 заняла у меня много времени. В последствии получился набор скриптов, который облегчает первичную настройку Linux и позволит создать каталог виртуальных машин с помощью Citrix Machine Creation Services (MCS).


DHCP сервер, установленный на ws-ad, присвоил новой виртуальной машине IP адрес 192.168.1.129.


Далее приведу основные настройки.

$ hostnamectl set-hostname template
$ yum install -y epel-release
$ yum install -y lsb mc gcc
$ firewall-cmd --permanent --zone=dmz --remove-service=ssh
$ firewall-cmd --permanent --zone=external --remove-service=ssh
$ firewall-cmd --permanent --zone=home --remove-service=ssh
$ firewall-cmd --permanent --zone=home --remove-service=mdns
$ firewall-cmd --permanent --zone=home --remove-service=samba-client
$ firewall-cmd --permanent --zone=home --remove-service=dhcpv6-client
$ firewall-cmd --permanent --zone=internal --remove-service=dhcpv6-client
$ firewall-cmd --permanent --zone=internal --remove-service=samba-client
$ firewall-cmd --permanent --zone=internal --remove-service=mdns
$ firewall-cmd --permanent --zone=internal --remove-service=ssh
$ firewall-cmd --permanent --zone=public --remove-service=ssh
$ firewall-cmd --permanent --zone=public --remove-service=dhcpv6-client
$ firewall-cmd --permanent --zone=work --remove-service=dhcpv6-client
$ firewall-cmd --permanent --zone=work --remove-service=ssh
$ firewall-cmd --permanent --zone=public --add-service=ssh
$ firewall-cmd --complete-reload

В XenCenter в вкладке «Console» смонтируем guest-tools.iso в DVD привод виртуальной машины и выполним установки XenTools для Linux.

$ mount /dev/cdrom /mnt
$ /mnt/Linux/install.sh
$ reboot

При настройке XenServer мы использовали архив NVIDIA-GRID-XenServer-7.4-390.72-390.75-391.81.zip, скаченный с сайта NVIDIA, в котором, помимо NVIDIA драйвера для XenServer, находится нужный нам драйвер NVIDIA для клиентов vGPU. Скачаем и установим его на ВМ.

$ cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rhgb quiet modprobe.blacklist=nouveau"
GRUB_DISABLE_RECOVERY="true"
$ grub2-mkconfig -o /boot/grub2/grub.cfg
$ wget http://vault.centos.org/7.6.1810/os/x86_64/Packages/kernel-d...
$ yum install kernel-devel-3.10.0-957.el7.x86_64.rpm
$ reboot
$ init 3
$ NVIDIA-GRID-XenServer-7.4-390.72-390.75-391.81/NVIDIA-Linux-x86_64-390.75-grid.run
$ cat /etc/nvidia/gridd.conf
ServerAddress=192.168.1.111
ServerPort=7070
FeatureType=1
$ reboot

Скачаем Linux Virtual Delivery Agent 1811 (VDA) для Centos 7. Ссылка для скачивания Linux VDA доступна, после авторизации на сайте Citrix.

$ yum install -y LinuxVDA-1811.el7_x.rpm
$ cat /var/xdl/mcs/mcs.conf
#!/bin/bash
dns1=192.168.1.110
NTP_SERVER=some.ntp.ru
AD_INTEGRATION=winbind
SUPPORT_DDC_AS_CNAME=N
VDA_PORT=80
REGISTER_SERVICE=Y
ADD_FIREWALL_RULES=Y
HDX_3D_PRO=Y
VDI_MODE=Y
SITE_NAME=domain.ru
LDAP_LIST=ws-ad.domain.ru
SEARCH_BASE=DC=domain,DC=ru
START_SERVICE=Y
$ /opt/Citrix/VDA/sbin/deploymcs.sh
$ echo "exclude=kernel* xorg*" >> /etc/yum.conf

В Citrix Studio создадим Machine Catalog и Delivery group. Перед этим необходимо установить и настроить Windows Server.


Windows Server с Domain Controller


Как скачать и установить Windows Server 2016?

Как установить компоненты Windows Server?

Как настроить Active Directory, DHCP и DNS?


Windows server 2016


Так как виртуальной машине (ВМ) с Windows Server не нужны GPU, мы будем использовать в качестве гипервизора сервер без GPU. По аналогии с описанием выше, установим еще один XenServer для хостинга системных виртуальных машин.


После этого создадим виртуальную машину для Windows Server с Active Directory.


Скачаем Windows Server 2016 с сайта Microsoft. Лучше пройти по ссылке с помощью Internet Explorer.

С помощью XenCenter создадим виртуальную машину. В вкладке «VM» нажмем «New VM».

Выбираем необходимые параметры:


VM template — Windows Server 2016 (64-bit)

Name — ws-ad.domain.ru

Install from ISO library — WindowsServer2016.iso, выбираем из примонтированного хранилища NFS ISO.

Number of vCPUs — 4

Topology — 1 socket with 4 cores per socket

Memory — 20 Gb

GPU type — none

Use this virtual disk — 100 Gb

Network


После создания, виртуальная машина появится в вертикальном списке слева. Нажмём на нее и перейдём во вкладку «Console». Дождем загрузки инсталятора Windows Server и выполним необходимые шаги для установки ОС.


Установим в ВМ XenTools. Правой кнопкой по ВМ, далее «Install Citrix VM Tools...». После этого будет примонтиван образ, который нужно запустить и установить XenTools. По окончанию установки потребуется перезагрузка ВМ.


Настроим сетевой адаптер:


IP адрес — 192.168.1.110

Маска — 255.255.255.0

Шлюз — 192.168.1.1

DNS1 — 8.8.8.8

DNS2 — 8.8.4.4


Если Windows Server не активирован, то выполним активацию. Ключ можно взять там же, откуда скачивали образ.

[PowerShell]$ slmgr -ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxx

Настроим имя компьютера. В моем случае это ws-ad.


Установка компонентов


В диспетчере серверов выберем «Добавить роли и компоненты». Отметим для установки DHCP-сервер, DNC-сервер и Доменные службы Active Directory. Отметим галочку «Перезагрузить автоматически».

Настройка Active Directoy


После перезагрузки ВМ, жмем «Поднять этот сервер до уровня контроллера домена» и добавим новый лес domain.ru.


Настройка DHCP сервера


На верхней панели диспетчера серверов нажмем на восклицательный знак, чтобы сохранить изменения при установки DHCP сервера.


Перейдем к настройкам DHCP сервера.

Создадим новую область 192.168.1.120-130. Остальное не меняем. Выберем «Настроить параметры DHCP сейчас» и введем IP адрес ws-ad (192.168.1.110) в качестве шлюза и DNS, которые будут указываться в настройках сетевых адаптеров виртуальных машин из каталога.


Настройка DNS сервера


Перейдем к настройкам DNS сервер.

Создадим новую зону прямого просмотра — primary zone, для всех DNS серверов в домене domain.ru. Больше ничего не меняем.


Создадим новую зону обратного просмотра, выбрав аналогичные параметры.

В свойствах DNS сервера, во вкладке «Дополнительно», установим галочку «Отключить рекурсию».


Создание тестового пользователя


Перейдем в «Центр администрирования Active Directory»

В разделе «Users» справа нажмем «Создать». Введем имя, например test, и внизу нажмем «ОК».

Выберем созданного пользователя и в вертикальном меню справа выберем «Сбросить пароль». Оставим галочку «Требовать смены пароля при следующем входе в систем».


Windows Server с Citrix Delivery Controller


Как скачать и установить Windows Server 2016?

Как скачать и установить Citrix Delivery Controller?

Как установить и настроить Citrix License Manager?

Как установить и настроить NVIDIA License Manager?


Windows server 2016


Так как виртуальной машине (ВМ) с Windows Server не нужны GPU, мы будем использовать в качестве гипервизора сервер без GPU.


Скачаем Windows Server 2016 с сайта Microsoft. Лучше пройти по ссылке с помощью Internet Explorer.

С помощью XenCenter создадим виртуальную машину. В вкладке «VM» нажмем «New VM».

Выбираем необходимые параметры:


VM template — Windows Server 2016 (64-bit)

Name — ws-dc

Install from ISO library — WindowsServer2016.iso, выбираем из примонтированного хранилища NFS ISO.

Number of vCPUs — 4

Topology — 1 socket with 4 cores per socket

Memory — 20 Gb

GPU type — none

Use this virtual disk — 100 Gb

Network


После создания, виртуальная машина появится в вертикальном списке слева. Нажмём на нее и перейдём во вкладку «Console». Дождемся загрузки инсталятора Windows Server и выполним необходимые шаги для установки ОС.


Установим в ВМ XenTools. Правой кнопкой по ВМ, далее «Install Citrix VM Tools...». После этого будет примонтиван образ, который нужно запустить и установить XenTools. По окончанию установки потребуется перезагрузка ВМ.


Настроим сетевой адаптер:


IP адрес — 192.168.1.111

Маска — 255.255.255.0

Шлюз — 192.168.1.1

DNS1 — 8.8.8.8

DNS2 — 8.8.4.4


Если Windows Server не активирован, то выполним активацию. Ключ можно взять там же, откуда скачивали образ.

[PowerShell]$ slmgr -ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxx

Настроим имя компьютера. В моем случае это ws-dc.


Добавим ВМ в домен domen.ru, перезагрузим и авторизуемся под доменной учетной записью администратора DOMEN\Administrator.


Citrix delivery controller


Скачаем Citrix Virtual Apps and Desktops 1811 на ws-dc.domain.ru. Ссылка для скачивания Citrix Virtual Apps and Desktops доступна, после авторизации на сайте Citrix.

Смонтируем скаченный iso и запустим. Выберем «Citrix Virtual Apps and Desktops 7». Далее нажмем «Get started». Возможно потребуется перезагрузка.

В моем случае достаточно выбрать для установки следующие компоненты:


Delivery Controller

Studio

License Server

StoreFront


Больше ничего не меняем и жмем «Установить». Не однократно потребуется перезагрузка, после чего установка будет продолжена.


Как только установка будет завершена запустится Citrix Studio — среда управления всем хозяйством Citrix.

Настройка Citrix Site


Выберем первый раздел из трёх — Site setup. При настройке укажем Site Name — domain.


В разделе «Connection» укажем данные для подключения гипервизора с GPU:


Connection address — 192.168.1.100

User name — root

Password — yourpassword

Connection Name — m60

Store management — Use storage local to the hypervisor.

Name for these resources — m60.

Select networks.

Select a GPU type and group — GRID M60-4Q.


Настройка Citrix Machine Catalogs


При настройке второго раздела — Machine Catalogs, выберем Single-session OS (Desktop OS).


Master Image — выберем подготовленный образ виртуальной машины и версию Citrix Virtual Apps and Desktops — 1811.


Выберем количество виртуальных машин каталоге, например 4.


Укажем схему, по которой виртуальным машинам будут присваиваться имена, в моем случае это desktop##. В этом случае будут созданы 4 ВМ с именами desktop01-04.


Machine Catalog name — m60.


Machine Catalog description — m60.


После создания Machine Catalog-а с четыремя ВМ, их можно будет найти в вертикальном списке XenCenter, слева.


Настройка Citrix Delivery Group


Третий раздел начинается с выбора количества ВМ, к которым следует предоставить доступ. Я укажу все четыре.


В разделе «Desktops» нажмем «Add», чтобы добавить группу ВМ, к которым мы предоставим доступ. Display name — m60.


Delivery group name — m60.


После настройки трех основных разделов, главное окно Citrix Studio будет выглядеть примерно так

Citrix license manager


Скачаем файл лицензии через личный кабинет на сайте Citrix.


В вертикальном списке слева выберем All Licensing Tools (Legacy). Перейдем на вкладку «Activate and Allocate Licenses». Выберем лицензии Citrix VDA и нажмем «Continue». Укажем имя нашего Delivery Controllera — ws-dc.domain.ru и количество лицензий — 4. Жмем «Continue». Скачаем сгенерированный файл лицензии на ws-dc.domain.ru.

В левом вертикальном списке Citrix Studio выберем раздел «Licensing». В правом вертикальном списке нажмем «License Management Console». В открывшимся окне браузера введем данные для авторизации доменного пользователя DOMEN\Administrator.


В Citrix Licensing Manager перейдем на вкладку «Install License». Для добавления файла лицензии нужно выбрать «Use downloaded license file».

Установка компонентов Citrix подразумевает использование нескольких виртуальных машин, один компонент — одна ВМ. В моем случае, все системные сервисы Citrix функционируют в пределах одной ВМ. В связи с этим отмечу один баг, исправление которого далось мне особенно сложно.


Если после перезагрузки ws-dc возникают проблемы различного характера, то рекомендую первым делом проверить запущенные сервисы. Привожу список сервисов Citrix, которые должны автоматически запускаться, после перезагрузки ВМ:


SQL Server (SQLEXPRESS)

Citrix Configuration Service

Citrix Delegated Administration Service

Citrix Analytics

Citrix Broker Service

Citrix Configuration Logging Service

Citrix AD Identity Service

Citrix Host Service

Citrix App Library

Citrix Machine Creation Service

Citrix Monitor Service

Citrix Storefront Service

Citrix Trust Service

Citrix Environment Test Service

Citrix Orchestration Service

FlexNet License Server -nvidia


Я столкнулся с проблемой, которая возникает при установки различных сервисов Citrix на одну ВМ. После перезагрузки стартуются не все сервисы. По одному запускать всю цепочку было лень. Решение тяжело гуглилось, поэтому привожу его тут — следует поменять в реестре два параметра:


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control

Name : ServicesPipeTimeout

Value :240000

Name : WaitToKillServiceTimeout

Value : 20000


Nvidia licence manager


Скачаем менеджер лицензий NVIDIA для Windows, через личный кабинет на сайте nvid.nvidia.com. Лучше заходить через Internet Explorer.

Установим его на ws-dc. Для этого сначала потребуется установить JAVA и добавить переменную окружения JAVA_HOME. После этого можно запустить setup.exe для установки NVIDIA License Manager.

Создадим сервер, сгенерируем и скачаем файл лицензии в личном кабинете на сайте nvid.nvidia.com. Перекинем файл лицензии на ws-dc.

Используя браузер, авторизуемся в веб-интерфейсе менеджера лицензий NVIDIA, доступном по адресу http://localhost:8080/licserver и добавим файл лицензии.

Активные сессии, использующие vGPU, можно посмотреть в разделе «Licensed Clients».


Удаленный доступ к Citrix Machine Catalog


Как установить Citrix Receiver?

Как подключиться к виртуальному рабочему столу?


Ограничения pikabu не позволяют мне добавить больше информации в один пост. Продолжение следует.

Показать полностью 24
Отличная работа, все прочитано!