Продолжаем говорить о настройке бенчмарка DVD Store. Сегодня - подготовка шаблона ВМ для автоматизированного развертывания.
Предыдущая часть доступна по ссылке: http://blog.vmpress.org/2018/08/dvd-store-i.html
Установка DVD Store на один тестовый сервер - не такая уж и сложная задача. Но когда речь заходит о необходимости одновременного запуска и тестирования DVD Store на десятках серверов, было бы неплохо каким-либо образом автоматизировать данную задачу. И тут как нельзя кстати подойдет возможность клонирования заранее созданного эталонного образа или шаблона ВМ в связке с Customization Specification.
Но просто так взять и конвертировать существующую ВМ с установленным SQL Server в шаблон не получится, SQL Server плохо переносит кастомизацию с помощью Sysprep. Выходом будет установка компонентов SQL Server в режиме PrepareImage с последующей автоматической настройкой в момент запуска Sysprep.
Для начала выполните начальные шаги по созданию и настройке эталонной ВМ и гостевой ОС аналогичные тем, что были описаны в первой части, включая установку ActivePerl и копирование файлов DVD Store в каталог C:\ds2\.
Запустите процедуру установки компонентов SQL Server:
Setup.exe /QS /ACTION=PrepareImage l /FEATURES=SQL,FullText /InstanceID="MSSQLSERVER" /IACCEPTSQLSERVERLICENSETERMS
Дождитесь, пока установщик скопирует необходимые файлы.
Чтобы сэкономить время, заранее создайте тестовую базу необходимого размера на тестовом сервере, и затем скопируйте все файлы БД и журналов на эталонную ВМ в папку E:\SQL\dbfiles\.
Создайте файл setup.sql в корне диска E:\ со следующим содержимым:
--Attach database
USE master
GO
sp_attach_db 'DS2', 'E:\SQL\dbfiles\ds.mdf'
GO
--Change password
ALTER LOGIN sa WITH CHECK_POLICY=OFF
ALTER LOGIN sa WITH PASSWORD=N''
GO
Создайте файл setupcomplete.cmd в папке C:\Windows\Setup\Scripts\ со следующим содержимым:
cd "C:\Program Files\Microsoft SQL Server\140\Setup Bootstrap\SQL2017\"
Setup.exe /ACTION="CompleteImage" /QS /IACCEPTSQLSERVERLICENSETERMS /INSTANCENAME="MSSQLSERVER" /INSTANCEID="MSSQLSERVER" /AGTSVCACCOUNT="NT Service\SQLSERVERAGENT" /AGTSVCSTARTUPTYPE="Manual" /SQLSVCSTARTUPTYPE="Automatic" /SQLCOLLATION="Latin1_General_CI_AS" /SQLSVCACCOUNT="NT Service\MSSQLSERVER" /SQLSYSADMINACCOUNTS="Administrator" /SECURITYMODE="SQL" /ADDCURRENTUSERASSQLADMIN="False" /TCPENABLED="1" /NPENABLED="0" /BROWSERSVCSTARTUPTYPE="Disabled" /SAPWD="P@ssw0rd"
icacls E:\SQL /grant "NT Service\MSSQLSERVER":(OI)(CI)F
"C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\SQLCMD.EXE" -S localhost -U sa -P "P@ssw0rd" -i E:\setup.sql
"C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\SQLCMD.EXE" -S localhost -U sa -P "" -i "C:\ds2\sqlserverds2\build\sqlserverds2_create_user.sql"
Данный скрипт будет автоматически запущен на последнем этапе Sysprep и выполнит следующие действия:
Выполнив данные настройки, выключите ВМ и создайте из нее шаблон. Создайте файл Customization Specification и укажите в нем необходимые параметры кастомизации (пароль администратора, сетевые настройки, подключение к рабочей группе или домену).
На этом настройка завершена. Теперь вы можете создавать новые экземпляры тестовых СУБД из эталонной ВМ.
Предыдущая часть доступна по ссылке: http://blog.vmpress.org/2018/08/dvd-store-i.html
Установка DVD Store на один тестовый сервер - не такая уж и сложная задача. Но когда речь заходит о необходимости одновременного запуска и тестирования DVD Store на десятках серверов, было бы неплохо каким-либо образом автоматизировать данную задачу. И тут как нельзя кстати подойдет возможность клонирования заранее созданного эталонного образа или шаблона ВМ в связке с Customization Specification.
Но просто так взять и конвертировать существующую ВМ с установленным SQL Server в шаблон не получится, SQL Server плохо переносит кастомизацию с помощью Sysprep. Выходом будет установка компонентов SQL Server в режиме PrepareImage с последующей автоматической настройкой в момент запуска Sysprep.
Для начала выполните начальные шаги по созданию и настройке эталонной ВМ и гостевой ОС аналогичные тем, что были описаны в первой части, включая установку ActivePerl и копирование файлов DVD Store в каталог C:\ds2\.
Запустите процедуру установки компонентов SQL Server:
Setup.exe /QS /ACTION=PrepareImage l /FEATURES=SQL,FullText /InstanceID="MSSQLSERVER" /IACCEPTSQLSERVERLICENSETERMS
Дождитесь, пока установщик скопирует необходимые файлы.
Чтобы сэкономить время, заранее создайте тестовую базу необходимого размера на тестовом сервере, и затем скопируйте все файлы БД и журналов на эталонную ВМ в папку E:\SQL\dbfiles\.
Создайте файл setup.sql в корне диска E:\ со следующим содержимым:
--Attach database
USE master
GO
sp_attach_db 'DS2', 'E:\SQL\dbfiles\ds.mdf'
GO
--Change password
ALTER LOGIN sa WITH CHECK_POLICY=OFF
ALTER LOGIN sa WITH PASSWORD=N''
GO
cd "C:\Program Files\Microsoft SQL Server\140\Setup Bootstrap\SQL2017\"
Setup.exe /ACTION="CompleteImage" /QS /IACCEPTSQLSERVERLICENSETERMS /INSTANCENAME="MSSQLSERVER" /INSTANCEID="MSSQLSERVER" /AGTSVCACCOUNT="NT Service\SQLSERVERAGENT" /AGTSVCSTARTUPTYPE="Manual" /SQLSVCSTARTUPTYPE="Automatic" /SQLCOLLATION="Latin1_General_CI_AS" /SQLSVCACCOUNT="NT Service\MSSQLSERVER" /SQLSYSADMINACCOUNTS="Administrator" /SECURITYMODE="SQL" /ADDCURRENTUSERASSQLADMIN="False" /TCPENABLED="1" /NPENABLED="0" /BROWSERSVCSTARTUPTYPE="Disabled" /SAPWD="P@ssw0rd"
icacls E:\SQL /grant "NT Service\MSSQLSERVER":(OI)(CI)F
"C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\SQLCMD.EXE" -S localhost -U sa -P "P@ssw0rd" -i E:\setup.sql
"C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\SQLCMD.EXE" -S localhost -U sa -P "" -i "C:\ds2\sqlserverds2\build\sqlserverds2_create_user.sql"
Данный скрипт будет автоматически запущен на последнем этапе Sysprep и выполнит следующие действия:
- Завершит установку SQL Server с нужными настройками.
- Выдаст разрешение на папку E:\SQL\ учетной записи MSSQLSERVER, под которой запускаются службы SQL (это нужно для корректного подключения БД).
- Запустит скрипт setup.sql, который подключит базу и сбросит пароль для учетной записи sa.
- Запустит скрипт sqlserverds2_create_user.sql, который создаст учетную запись ds2user и предоставит ей необходимые права на БД.
Выполнив данные настройки, выключите ВМ и создайте из нее шаблон. Создайте файл Customization Specification и укажите в нем необходимые параметры кастомизации (пароль администратора, сетевые настройки, подключение к рабочей группе или домену).
На этом настройка завершена. Теперь вы можете создавать новые экземпляры тестовых СУБД из эталонной ВМ.
Параметры для запуска теста
Последнее, о чем хотелось бы поговорить - это параметры, которые можно указывать в файле или передавать при запуске утилиты ds2sqlserverdriver.exe для тестирования:- target= - имена или IP адреса СУБД, к которым будут выполняться тестовые запросы. Можно указать несколько серверов, разделяя их точкой с запятой, например: 192.168.1.10;192.168.1.11;192.168.1.12;sql01;sql02. Если не задан, то в качестве значения по умолчанию используется localhost.
- n_threads= - количество одновременных потоков, которые использует утилита для подключения к каждому серверу, чем больше потоков, тем больше нагрузка на СУБД. Значение по умолчанию: 1.
- ramp_rate= - прирост пользователей в секунду, с которым происходит увеличение кол-ва обращений к СУБД. Значение по умолчанию: 10.
- run_time=60 - задает время проведения теста в минутах. Значение по умолчанию: 0 - бесконечность.
- db_size=2GB - размер БД в гигабайтах.
- warmup_time=10 - время в минутах в начале теста, которое дается на "разогрев". Значение по умолчанию: 0.
- think_time= - время в секундах, которое тратит тестовый пользователей между операциями (поиск, заказ DVD и пр.). Значение по умолчанию: 0.
- pct_newcustomers= - процентное соотношение новых пользователей, заходящих в магазин. Значение по умолчанию: 20.
- n_searches= - среднее количество операций поиска по каталогу товаров, которые приходятся на одного пользователя. Значение по умолчанию: 3.
- search_batch_size= - среднее количество объектов, которые возвращаются в одном поисковом запросе. Значение по умолчанию: 5.
- n_line_items= - среднее количество товаров в одном заказе. Значение по умолчанию: 5.
- windows_perf_host= - перечень серверов Windows, по которым требуется отображать статистику загрузки CPU.
- linux_perf_host= - перечень серверов Linux, по которым требуется отображать статистику загрузки CPU.
- detailed_view= - отображать детальную статистику по каждому тестовому СУБД.
0 коммент.:
Отправить комментарий