5 Commits

Author SHA1 Message Date
trustdev_admin 37e0a4c2c2 add composes and docker registry 2026-07-09 08:28:51 +03:00
trustdev_admin 3c53e9a159 remove trash 2026-07-08 17:53:45 +03:00
trustdev_admin 28d97db7fc gitea runners and mini refactor 2026-05-20 07:54:37 +03:00
trustdev_admin 54a0fbfb8c add new files and refactor 2026-05-19 22:54:33 +03:00
trustdev_admin 32c4d7b23c add copy button 2026-05-13 07:44:14 +03:00
61 changed files with 388 additions and 457 deletions
+1
View File
@@ -1,2 +1,3 @@
.venv .venv
docs/copypaste docs/copypaste
docs/Заметки/vault/root-token.md
+19
View File
@@ -0,0 +1,19 @@
FROM docker.io/library/python:alpine
WORKDIR /home/ubadmin/mkdocks
COPY ./requirements.txt .
RUN apk add --update --no-cache --virtual .build-deps gcc musl-dev &&\
apk add --no-cache git ca-certificates curl &&\
pip install --no-cache-dir --requirement ./requirements.txt &&\
apk del .build-deps &&\
rm ./requirements.txt
WORKDIR /d
CMD ["mkdocs", "serve", "-a", "0.0.0.0:8000"]
+10
View File
@@ -0,0 +1,10 @@
# Планы для Sailor.lab
~~1) Развернуть vault~~
2) Выбрать систему мониторинга
3) Настроить бекапы
4) Установить ubuntu на старый комп
5) Подумать над переделкой шаблона as a service?
6) Добавить диск и маунт диска для логов
7) Настроить Vault
8) Сделать дашборд для веб панелей
9) Развернуть opensearch
+1
View File
@@ -0,0 +1 @@
Стартовая страница
+24
View File
@@ -0,0 +1,24 @@
services:
dashy:
# The image to pull + version. Can use `ghcr.io/lissy93/dashy` instead
image: lissy93/dashy:latest
# Optional container name
container_name: dashy
# Port to serve on (keep container port (second one) as 8080)
ports:
- 8080:8080
# Mount a directory containing your conf.yml and any other assets
volumes:
- ./user-data:/app/user-data
# Add any env vars for server here, if needed
environment:
- NODE_ENV=production
# Auto-start the container on boot
restart: unless-stopped
# Healthcheck to determine when container healthy
healthcheck:
test: ['CMD', 'node', '/app/services/healthcheck.js']
interval: 1m30s
timeout: 10s
retries: 3
start_period: 30s
+41
View File
@@ -0,0 +1,41 @@
networks:
gitea:
external: false
services:
server:
image: docker.gitea.com/gitea:1.26.4
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=mysql
- GITEA__database__HOST=db:3306
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=gitea
restart: always
networks:
- gitea
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "222:22"
depends_on:
- db
db:
image: docker.io/library/mysql:8
restart: always
environment:
- MYSQL_ROOT_PASSWORD=gitea
- MYSQL_USER=gitea
- MYSQL_PASSWORD=gitea
- MYSQL_DATABASE=gitea
networks:
- gitea
volumes:
- ./mysql:/var/lib/mysql
+40
View File
@@ -0,0 +1,40 @@
networks:
gitea:
external: false
services:
server:
image: docker.gitea.com/gitea:1.26.4
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=db:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=gitea
restart: always
networks:
- gitea
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "222:22"
depends_on:
- db
db:
image: docker.io/library/postgres:14
restart: always
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=gitea
- POSTGRES_DB=gitea
networks:
- gitea
volumes:
- ./postgres:/var/lib/postgresql/data
+10
View File
@@ -0,0 +1,10 @@
services:
nexterm:
image: germannewsmaker/nexterm:latest
container_name: nexterm
network_mode: host
restart: always
environment:
- ENCRYPTION_KEY=02bdb65a028c37b2628c3727f3821530a629c40c25843b5268ceeb79a2c4033e
volumes:
- ./nexterm-data:/app/data
-17
View File
@@ -1,17 +0,0 @@
# Welcome to MkDocs
For full documentation visit [mkdocs.org](https://www.mkdocs.org).
## Commands
* `mkdocs new [dir-name]` - Create a new project.
* `mkdocs serve` - Start the live-reloading docs server.
* `mkdocs build` - Build the documentation site.
* `mkdocs -h` - Print help message and exit.
## Project layout
mkdocs.yml # The configuration file.
docs/
index.md # The documentation homepage.
... # Other markdown pages, images and other files.
-33
View File
@@ -1,33 +0,0 @@
# Проект по построению инфраструктуры для хостинга платформ мониторинга
## Задачи
### Железо
- Расположение серверов
- Охлаждение
- Прокладка кабелей
- Питание
- Запас мощности
### ОС
- Установка ОС
- Базовая настройка доступов
- Управление и оркестрация
### Сеть
- Прокладка
- Настройка оборудования
- Настройка магистралей
### Документирование
- Учета железа
- Учет ОС и конфигураций
- Карты сети
- Физическая схема
- L3 схема
- Схема подключений
- Vlan схема
- Таблица адресации
- Overcloud
### Мониторинг
- Доступность
- Оповещения
- Учет потребления ресурсов
-2
View File
@@ -1,2 +0,0 @@
#Homelab
Для своей лабы нужен сервак, и внешний адрес через который я смогу подключать внешние сервисы.
-8
View File
@@ -1,8 +0,0 @@
#openstack
Заметки по поводу запуска Openstack
Для запуска использовать 2U Oracle и харды для Ceph
Пересобрать рейды. Установить контроллер в режим JBOD или вообще убрать его и подключить бекплейн к материнке.
Подключить сетевые карты на 10Гб\с к серверам
Накатываем 22 убунту на все сервера.
Для подключения используем 10 Гбс на Цеф и 1 гбс на остальное. Так же можно прокинуть внешний ip для тестов облака.
Ставим коллу и деплоим
+18
View File
@@ -0,0 +1,18 @@
---
pageInfo:
title: Home Lab
sections: # An array of sections
- name: Github
items: # An array of items
- title: GitHub
description: Source code and documentation on GitHub
icon: fab fa-github
url: https://github.com/SailorUpiter/mkdocs
- name: Services
items:
- title: DNS
icon: favicon
url: http://192.168.1.2/
- title: Gitea
icon: https://icon-icons.com/ru/icon/gitea/146173
url: http://192.168.130.3:3000/
@@ -0,0 +1,2 @@
# Заметки по докеру
1) Для того что бы compose перечитал файл конфигурации нужно сделать стоп, а потом старт. Рестар не перечитывает конфигурацию
@@ -0,0 +1,29 @@
# Альтернативный registry
Есть 2 ситуации когда нужен альтернативный реджистри докера:
1) требуется качать свое приложение из своего регистри
2) Докерхаб не доступен\ограничено кол-во скачиваний\санкции
Для решение этих проблем мы можем в конфиг файле докера указать альтернативный регистри. Данная инструкция для обычной установки докера. Если докер рутлесс, то команды будут иными
- Открываем или создаем, если нет, файл по пути
```
nano /etc/docker/daemon.json
```
- Редактируем или вставляем в свежий файл конфиг. В данном случае используется зеркало таймвеба. Ниже будет список альтернативныйх зеркал
```
{
"registry-mirrors" : [ "https://dockerhub.timeweb.cloud" ]
}
```
- Перезапускаем демон докера
```
systemctl reload docker
```
# Список альтернативных зеркал
Адрес реестра Компания-владелец
https://mirror.gcr.io Google
https://public.ecr.aws Amazon
https://dockerhub.timeweb.cloud Timeweb Cloud
https://dh-mirror.gitverse.ru GitVerse (СберБанк)
https://dockerhub1.beget.com Beget
https://quay.io Red Hat
https://registry.access.redhat.com Red Hat
https://registry.redhat.io Red Hat
+6 -6
View File
@@ -78,20 +78,20 @@ git --version
``` ```
adduser \ adduser \
--system \ --system \
--shell /bin/bash \ --shell /bin/false \
--gecos 'Git Version Control' \ --gecos 'Git Version Control' \
--group \ --group \
--disabled-password \ --disabled-password \
--home /home/git \ --home /home/git \
git gitea
``` ```
1) Создадим необходимые для работы директории и выдадим созданному юзеру права на них. Права 770 на директорию /etc/gitea выдаются только для первоначальной настройки. 1) Создадим необходимые для работы директории и выдадим созданному юзеру права на них. Права 770 на директорию /etc/gitea выдаются только для первоначальной настройки.
``` ```
mkdir -p /var/lib/gitea/{custom,data,log} mkdir -p /mnt/data/gitea/{custom,data,log}
chown -R git:git /var/lib/gitea/ chown -R gitea:gitea /mnt/data/gitea/
chmod -R 750 /var/lib/gitea/ chmod -R 750 /mnt/data/gitea/
mkdir /etc/gitea mkdir /etc/gitea
chown root:git /etc/gitea chown root:gitea /etc/gitea
chmod 770 /etc/gitea chmod 770 /etc/gitea
``` ```
1) Создадим системный юнит для запуска gitea как сервиса systemd. Создадим файл юнита по пути /etc/systemd/system/gitea.service 1) Создадим системный юнит для запуска gitea как сервиса systemd. Создадим файл юнита по пути /etc/systemd/system/gitea.service
@@ -0,0 +1,30 @@
log:
level: info
runner:
file: .runner
capacity: 1
timeout: 3h
insecure: false
fetch_timeout: 5s
fetch_interval: 2s
labels: ["ubuntu-latest:docker://gitea/runner-images:ubuntu-latest", "ubuntu-22.04:docker://gitea/runner-images:ubuntu-22.04"]
cache:
enabled: true
dir: ""
host: "192.168.1.3"
port: 8088
external_server: ""
container:
network: ""
privileged: false
options:
workdir_parent:
valid_volumes: []
docker_host: ""
force_pull: false
host:
workdir_parent:
@@ -0,0 +1,15 @@
services:
runner-1:
image: gitea/act_runner:nightly
restart: always
environment:
- CONFIG_FILE=/config.yaml
- GITEA_INSTANCE_URL=http://192.168.1.3:3000/
- GITEA_RUNNER_REGISTRATION_TOKEN=token
volumes:
- ./runner1/config.yaml:/config.yaml
- ./runner1/data:/data
- ./runner1/cache:/root/.cache
- /var/run/docker.sock:/var/run/docker.sock
ports:
- "8088:8088"
@@ -0,0 +1,41 @@
# Gitea Runner
# Включение Actions
Для установки и добавления раннера нужны включенные действия. Если они не включены по умолчанию, то включаем их в конфиге самой gitea
```
nano /etc/gitea/app.ini
[actions] ENABLED=true
```
# Где взять токен
Нужно зайти в репозиторий -> Настройки -> Действия -> Раннеры -> Создать новый раннер
## Установка docker
Раннер запускается в контейнере и запускает задачи тоже в контейнере, так что нам нужен докер.
```
curl -fsSL https://get.docker.com | sh -
```
В нужно папке создадим папку для раннеров и перейдем в нее. Если нужнго будет запускать несколько раннеров, то мы просто создадим папку со следующим номером.
```
mkdir -p gitea_runners/runner1
mkdir runner-1 && cd runner-1
```
Создадим конфиг ранера. Описание всех настроке конфига в оф документации https://gitea.com/gitea/runner/src/branch/main/internal/pkg/config/config.example.yaml
```
nano config.yaml
```
Вернемся в общую для ранеров директорию и создадим там compose файл для запуска. В этом файле мы можем описывать сразу все раннеры
```
cd ..
nano docker-compose.yaml
```
После всех настроек запускаем и ждем лога о том, что раннер зарегистрирован
```
docker compose up -d
docker logs gitea_runners-runner-1-1 -f
```
## Тест
Для теста создадим в репозитории директорию и конфиг для работы с раннером
```
mkdir -p ./.gitea/workflow/test.yaml
```
Далее запушим любое изменение и посмотрим в репозитории во вкладе действия выполнение. Первое выполнение может быть долгим, так как раннер скачивает контейнер для запуска кода.
@@ -0,0 +1,17 @@
name: Test Workflow
on:
push:
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Print environment variables
run: |
echo "GITHUB_REPOSITORY: $GITHUB_REPOSITORY"
echo "GITHUB_SHA: $GITHUB_SHA"
echo "GITHUB_REF: $GITHUB_REF"
echo "GITHUB_ACTOR: $GITHUB_ACTOR"
echo "PATH: $PATH"
+3
View File
@@ -0,0 +1,3 @@
# Заметки по синтаксису Markdown
## Зачеркнуть
Что бы сделать зачеркнутый текст поместите его в ~~ТЕКСТ~~
+11
View File
@@ -0,0 +1,11 @@
storage "file" { # Указываем что храним секреты в файле, а не БД
path = "/mnt/vault/data" # Путь до файла с данным
}
listener "tcp" { # Указываем какой сервер слушаем
address = "0.0.0.0:8200"
# tls_cert_file = "/etc/vault/vault-cert.pem"
# tls_key_file = "/etc/vault/vault-key.pem"
tls_disable = 1 # Отключение https://
}
ui = true # Включить UI
disable_mlock = true
+37
View File
@@ -0,0 +1,37 @@
# Инструкция по установке Vault
Система ubuntu 22.04
Vault 2.0.0
## Скачивание
Компания Hashicorp запретила скачивать свои продукты из России. Пользуемся ВПН или скачиваем с зеркала яндекса
```
VAULT_VERSION="2.0.0"
wget https://hashicorp-releases.yandexcloud.net/vault/${VAULT_VERSION}/vault_${VAULT_VERSION}_linux_amd64.zip
```
## Установка
Установим архиватор, что бы распаковать бинарник
```
sudo apt-get install -y unzip
```
Распакуем и перенесем бинарник в папку с бинарниками
```
unzip vault_${VAULT_VERSION}_linux_amd64.zip
sudo mv vault /usr/local/bin/
```
Проверим что работает
```
vault --version
```
Далее нужно создать системного юзера и директории для конфигов и данных
```
adduser \
--system \
--shell /bin/false \
--gecos 'Vault user' \
--group \
--disabled-password \
--no-create-home \
vault
```
```
sudo nano /etc/vault/vault.hcl
```
+29
View File
@@ -0,0 +1,29 @@
[Unit]
Description="HashiCorp Vault - A tool for managing secrets"
Documentation=https://www.vaultproject.io/docs/
Requires=network-online.target
After=network-online.target
ConditionFileNotEmpty=/etc/vault/config.hcl
[Service]
User=vault
Group=vault
ProtectSystem=full
ProtectHome=read-only
PrivateTmp=yes
PrivateDevices=yes
SecureBits=keep-caps
AmbientCapabilities=CAP_IPC_LOCK
NoNewPrivileges=yes
ExecStart=/usr/local/bin/vault server -config=/etc/vault/config.hcl
ExecReload=/bin/kill --signal HUP
KillMode=process
KillSignal=SIGINT
Restart=on-failure
RestartSec=5
TimeoutStopSec=30
StartLimitBurst=3
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
@@ -0,0 +1 @@
Для того что бы использовать vault
@@ -1,10 +0,0 @@
Данная нейросеть развернута локально на машине ООО Трастинфо.
Нейросеть помнит контекст во время диалога
Она не понимает местонахождение меня.
Старается дать развернутый ответ.
При большом объеме информации заметны фризы и подвисания
На задачи математических вычислений она начинает выводить код python и отвечает на английском языке при вопросе на русском, но вычисление сделаны верно. Проверено на очень простом уравнении
После решения уравнения нейросеть в чате начала отображать выполнение кода и повторять ответ на английском языке на старый вопрос пока не скажешь прекратить
Пишет простые функции на питоне и может их выполнить
Воспринимает ли текст с ошибками?
Текст с ошибками воспринимает плохо, но воспринимает и осознает контекст сообщения
@@ -1,6 +1,6 @@
#notes #comand #linux #docker #notes #comand #linux #docker
``` ```
curl -fsSL https://get.docker.com | sh - curl https://get.docker.com | sh -
``` ```
@@ -1,2 +0,0 @@
#cloud-init #notes #automation #мысли
Подумать что мы можем делать с клауд инитом
-2
View File
@@ -1,2 +0,0 @@
#docker #notes #мысли
Для автоматизации установки докера на хост скопировать скрипт установки с сайта докера, залить в локальную репу и разливать его с ансибл хоста, после клауд инита.
@@ -1,3 +0,0 @@
#мысли
Определить бы какие сервера будут стетлесс а как стейтфулл
Тогда можно будет раскидать инфру, на плейбуки и создать репы для бекапов
@@ -1,16 +0,0 @@
#automation #notes #мысли
План настройки автоматизации при деплое сервисов.
Инструменты для использования OpenTofu + Ansible
Что мы настраиваем терраформом
1. Параметры ВМ (CPU, Ram, disk, ip, dns)
2. Креды (логин, пароль, ssh)
3. Первичная настройка (hostname, iptables?, fail2ban, ssh, time)
4. Docker?
В принципе делаем копию официальной репы софта?
Вид к которому я пришел
- Деплоим вм на хост через тераформ
- При деплое выполняются первичные настройки
- Передаем параметры в инвентарь ансибла
- Ансибл запускает плейбуки для настройки
- В настройку входят: система, мониторинг, бекап файлов.
-
@@ -1,15 +0,0 @@
#notes #backup #мысли
Примерные мысли такие. Для рекавери нам нужна вм, дата и конфиги.
Как сервер бекапов используем urbackup. С его помощью мы бекапим файлы из ВМок которые мы можем быстро востановить в случае чего, что бы уменьшить оверхед бекапа. На каждую ВМ создаем рекавери план. В основном мы имеем 3 вида файлов:
1) БД
2) Статика
3) Конфиги
На каждую ВМ делаем свою репу с бекапами. Хотелось бы все делать рестиком быстро и просто с дедупом, но сложно в управлении и не совмещаем образы ВМ и файлы. Можно написать автоматизацию для хапер ви через снапшоты, но очень много подводных. Это прям надо целый инструмент писать.
Для урбекапа надо проверить ограничения по скорости и мультипоток.
Настроить репы для файлов. Так же настроить репы для хранения тофу файлов.
Подумать над автоматической раскаткой приложения. Очень много автоматизации, долго писать тяжело поддерживать.
Примерная блок схема
Разверстка ВМ --> Добавление провижинига в репозиторий --> Определение директорий и файлов для бекапа --> Организация бекап-репы -- > Автоматизация бекапа
Схема говно надо переделать.
Добавить интеграцию бекапов в автоматизацию.
Надо сделать регистри контейнеров для наших систем.
@@ -1,5 +0,0 @@
#мысли
Маркировка осуществляется для:
* Сетевых кабелей (медных и оптических)
* Кабелей питания
@@ -1,15 +0,0 @@
#notes #мысли
Что требуется для онбординга новичка в команде?
Какая документация нужна для онбординга?
Попробуем сформировать базовую подготовку
Задачи на онбординг:
1) Знакомство с командой. Оформление пропусков (задача начальства)
2) Ознакомление с документами по ТБ, ОТ и остальными
3) Заведение учетных записей.
4) Первичный инструктаж
5) Острова обучения
6) Сдача предварительного среза знаний
7) Сдача экзамена.
* [ ] Составить список учетных записей которые нужно дать сотруднику.
* [ ] Определить входящую в инструктаж информацию
* [ ] Сформировать острова обучения
@@ -1,2 +0,0 @@
#мысли #notes
Нетбокс будет являться эталонным хостом для систем. НА основе его сделаем документацию и отработаем алгоритм развертывания. Так же эталонными хостами будут сервисные хосты (мониторинг, логи, бекап.)
@@ -1,12 +0,0 @@
Здравствуйте. Для организации высокопроизводительного хранилища базы данных мониторинга электропотребления PDU требуется закупить SSD диски и SFP модули. Высокопроизводительное хранилище требуется так как текущее хранилище не справляется с возросшей нагрузкой, что в дальнейшем может привести к потере данных.
Для организации отказоустойчивости требуется что бы каждый сервер в количестве 8 штук был оснащен SSD дисками. Минимальное количество дисков 2-шт на сервер.
Таким образом требуется 16 дисков  SSD Samsung PM1643a <MZILT1T9HBJR> или аналогичных.
Для организации высокоскоростного подключения к хранилищу базы данных системы мониторинга PDU требуется SFP модули.  Для обеспечения отказоустойчивости, совместимости  и взаимозаменяемости серверов требуется закупить:
24 модуля SFP ASF-10G-T 10Gteck или аналогичные
16 модулей SFP Lenovo AFBR-709SMZ-ib8, ARISTA XVR-00001-02, Huawei LTF8501-BC+ 02310MNW или аналогичных
@@ -1,4 +0,0 @@
Надо портов 15 + 2 аплинка
Адресов надо штук 50-100
Стойка 2.5 метра. Между стойками 3 метра. лоток пол метра с каждой стойки.
Итого 2.5 +1 +3 = 6.5 метров
@@ -1,25 +0,0 @@
Идея такая - сделать скрипт который будет создавать рейд, потом запускать тесты и записывать результаты в файл. После рейд удаляется и создается с другим страйпом. После всех тестов создается рейд с включенным кешем. и аналогично запускаются тесты
Тестирование будет осуществляться в два этапа без кеша и с кешем. Для каждого страйпа будет проверятся нагрузка в (1,4) потока, блоками (4,8,64,4096) К, с глубиной очереди (1,8,32,64,128).
Размер файла неизвестен. Тестирование настроено на время. Время тестирование 10 сек каждый конфиг.
Элементы программы:
Статические данные:
- Список страйпов для рейд контроллера, список потоков, список очереди, размер блока. +
Функции ОС:
- Функция создания рейда +
- Функция создания ФС +
- Функция монтирования +
- Функция отмонтирования +
- Функция удаления ФС +
- Функция удаления рейда +
- Функция включения кеша
Тестирование:
- Функция генерации конфиг файлов +
- Функция перебора конфигов
- Функция тестирования и записи в файл результатов
- Парсинг файлов и вывод только нужных данных в таблицу
Реализация на питоне. Запускаем большой цикл с вложенным циклом.
Выполнение выглядит так:
Генерим конфиги -> Начали цикл создаем RAID 0 из 1-ого диска со страйпом 8 -> создаем ФС -> Монтируем ФС -> Начало цикла тестирования -> Начало цикла парсинга -> Завршение парсинга - > Завершение цикла тестирования -> Отмонтируем диск -> Удаляем ФС -> Удаляем рейд 0 со страйпом 8 -> Завершаем Цикл тестирования.
@@ -1,11 +0,0 @@
Что требуется для сдачи юнита стойки в аренду
1) Стойка 1U + розетка
2) Питание + резерв -> проблема управления питанием и мониторинга его потребления (Сколько максимальный объем питания на 1 БП? На 1 сервер?)
3) Охлаждение
4) IP Адреса -> Проблема подключения и портов (сколько ip адресов? Сколько портов подключения? Какой гарантированный канал? Порт IPMI дается ли? какой у него канал? )
5) Контроль доступа ?
6) Суммарный трафик?
7) Топология сети?
8) Автоматизация?
9) Биллинг?
@@ -1,5 +0,0 @@
#мысли
Ну какую то сверх очевидную базу я знаю.
Темы которые следует поизучать подробнее это ВПН, маршрутизация, БГП
БГП вообще 10 раз читал ниче не понял
С впном пока надо повременить и отрисовать архитектуру
@@ -1,81 +0,0 @@
#note #network #sfp
У нас все оборудование цисковсвкое. Кароточки тоже хуй пойми какие.
Посчитаем сколько всего надо:
6 серверов RJ45 (2 порта) 24
2 сервера SFP+ (2 порта) 8
1 СХД SFP+ (4 порта) 8
Подключение идет с 2-х сторон
Итого:
24 RJ4 Пример ASF-10G-T 10Gteck
16 SFP+
Пересчет
6 серверов RJ45 по 2 порта = 12 штук
5 серверов SFP+ по 2 порта =20 штук
1 схд 4 портов rj45 = 4 штуки (4 было в комплекте они уже есть)
Запас? 4 RJ45
Итого
16 RJ45
24 SFP+
Чисто теоретически заведутся все СФП. Практически а хуй его знает.
Точно рабочие
ASF-10G-T 10Gteck
Lenovo AFBR-709SMZ-ib8
ARISTA XVR-00001-02
Huawei LTF8501-BC+ 02310MNW
Текст письма
Здравствуйте. Для организации высокоскоростного подключения к хранилищу базы данных системы мониторинга PDU требуется SFP модули. Для обеспечения отказоустойчивости и совместимости серверов требуется закупить:
24 модуля SFP ASF-10G-T 10Gteck или аналогичные
16 модулей SFP Lenovo AFBR-709SMZ-ib8, ARISTA XVR-00001-02, Huawei LTF8501-BC+ 02310MNW или аналогичных
Отчет о своместимости SFP
HPE 10GB SR SFP+ 455885-001
SN 7CR909N16K
Ядро сети Работает
HP NIC Работает
Eonstore DS1012 Работает
Lenovo AFBR-709SMZ-ib8
pn\sn 46c3448   Y050UC0C6FD0
 (Хпшеная в ленову работает)
Ядро сети (Работает)
from core    to  HP DL360G9 SFP+ card  Работает
Eonstore DS1012 Работает
HP NIC (работает)
ARISTA XVR-00001-02
Sn XAP1114T3654
Ленова в аристу работает
Ариста в Хп работает
Ядро сети (Работает)
HP NIC (работает)
Eonstore DS1012 Работает
Huawei LTF8501-BC+ 02310MNW
Sn J265A000290
Ядро сети (Работает)
Хуавей в аристу работает
Хуавей в ленову +
Хуавей в ХП +
HP NIC (работает)
Eonstore DS1012 Работает
Оптические трансиверы
СХД 8 Шт
Сервера HP 8 Шт
Сервера оракл 12 Шт
Rj45 трансиверы 16 ШТ
Карточки куда идет
деллы BCM57416 NetXtreme-E Dual-Media 10G RDMA Ethernet Controller (rev 01)
ХП rj54 Intel Corporation Ethernet Controller 10-Gigabit X540-AT2 (rev 01)
SFP+ карточки HP NC550SFP Dual Port 10Gbe Server adapter
Лезвие ядра сети Cisco C6800-32P10G
@@ -1,144 +0,0 @@
конфиг
[fiotest]
rw=write
name=fiotest
blocksize=8k
filename=/mnt/pve/test/write
size=1g
ioengine=libaio
iodepth=128
numjobs=1
runtime=60
direct=1
Результат
fiotest: (g=0): rw=write, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=1
fio-3.28
Starting 1 process
fiotest: Laying out IO file (1 file / 1024MiB)
^Cbs: 1 (f=1): [W(1)][33.3%][w=1001KiB/s][w=250 IOPS][eta 00m:40s]
fio: terminating on signal 2
fiotest: (groupid=0, jobs=1): err= 0: pid=2515: Sat May 3 00:11:44 2025
write: IOPS=306, BW=1227KiB/s (1257kB/s)(24.2MiB/20224msec); 0 zone resets
slat (nsec): min=9129, max=61388, avg=11072.73, stdev=2469.71
clat (usec): min=1575, max=237505, avg=3247.15, stdev=5187.99
lat (usec): min=1585, max=237546, avg=3258.36, stdev=5188.33
clat percentiles (usec):
| 1.00th=[ 1745], 5.00th=[ 1909], 10.00th=[ 2008], 20.00th=[ 2180],
| 30.00th=[ 2311], 40.00th=[ 2442], 50.00th=[ 2573], 60.00th=[ 2737],
| 70.00th=[ 2966], 80.00th=[ 3294], 90.00th=[ 4228], 95.00th=[ 5866],
| 99.00th=[ 11994], 99.50th=[ 16319], 99.90th=[ 90702], 99.95th=[103285],
| 99.99th=[238027]
bw ( KiB/s): min= 672, max= 1888, per=99.49%, avg=1221.60, stdev=244.70, samples=40
iops : min= 168, max= 472, avg=305.40, stdev=61.18, samples=40
lat (msec) : 2=9.88%, 4=78.65%, 10=9.69%, 20=1.50%, 50=0.10%
lat (msec) : 100=0.11%, 250=0.08%
cpu : usr=0.17%, sys=0.29%, ctx=6206, majf=0, minf=12
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=0,6205,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=1
Run status group 0 (all jobs):
WRITE: bw=1227KiB/s (1257kB/s), 1227KiB/s-1227KiB/s (1257kB/s-1257kB/s), io=24.2MiB (25.4MB), run=20224-20224msec
Disk stats (read/write):
dm-0: ios=54/8018, merge=0/0, ticks=636/27836, in_queue=28472, util=97.85%, aggrios=54/7434, aggrmerge=0/861, aggrticks=638/24232, aggrin_queue=24906, aggrutil=97.59%
sda: ios=54/7434, merge=0/861, ticks=638/24232, in_queue=24906, util=97.59%
Конфиг
[fiotest]
rw=write
name=fiotest
blocksize=8k
filename=/mnt/pve/test/write
size=1g
ioengine=libaio
iodepth=32
numjobs=1
runtime=60
direct=1
Результат
fiotest: (g=0): rw=write, bs=(R) 8192B-8192B, (W) 8192B-8192B, (T) 8192B-8192B, ioengine=libaio, iodepth=32
fio-3.28
Starting 1 process
Jobs: 1 (f=1): [W(1)][100.0%][w=11.0MiB/s][w=1409 IOPS][eta 00m:00s]
fiotest: (groupid=0, jobs=1): err= 0: pid=3588: Sat May 3 00:16:19 2025
write: IOPS=1530, BW=12.0MiB/s (12.5MB/s)(718MiB/60022msec); 0 zone resets
slat (usec): min=3, max=141739, avg=94.73, stdev=1480.44
clat (msec): min=2, max=262, avg=20.81, stdev=14.28
lat (msec): min=2, max=262, avg=20.91, stdev=14.27
clat percentiles (msec):
| 1.00th=[ 4], 5.00th=[ 8], 10.00th=[ 12], 20.00th=[ 14],
| 30.00th=[ 16], 40.00th=[ 17], 50.00th=[ 18], 60.00th=[ 20],
| 70.00th=[ 23], 80.00th=[ 26], 90.00th=[ 33], 95.00th=[ 40],
| 99.00th=[ 69], 99.50th=[ 95], 99.90th=[ 203], 99.95th=[ 226],
| 99.99th=[ 247]
bw ( KiB/s): min= 5584, max=17216, per=99.85%, avg=12226.15, stdev=2529.45, samples=119
iops : min= 698, max= 2152, avg=1528.27, stdev=316.18, samples=119
lat (msec) : 4=1.24%, 10=6.83%, 20=52.96%, 50=36.68%, 100=1.86%
lat (msec) : 250=0.43%, 500=0.01%
cpu : usr=0.48%, sys=1.47%, ctx=68734, majf=0, minf=10
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=100.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.1%, 64=0.0%, >=64=0.0%
issued rwts: total=0,91862,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=32
Run status group 0 (all jobs):
WRITE: bw=12.0MiB/s (12.5MB/s), 12.0MiB/s-12.0MiB/s (12.5MB/s-12.5MB/s), io=718MiB (753MB), run=60022-60022msec
Disk stats (read/write):
dm-0: ios=126/98119, merge=0/0, ticks=3940/1857428, in_queue=1861368, util=99.31%, aggrios=126/96396, aggrmerge=0/2709, aggrticks=3928/1803591, aggrin_queue=1807713, aggrutil=99.23%
sda: ios=126/96396, merge=0/2709, ticks=3928/1803591, in_queue=1807713, util=99.23%
конфиг
[fiotest]
rw=write
name=fiotest
blocksize=8k
filename=/mnt/pve/test/write
size=1g
ioengine=libaio
iodepth=1
numjobs=1
runtime=60
direct=1
Результат
fiotest: (g=0): rw=write, bs=(R) 8192B-8192B, (W) 8192B-8192B, (T) 8192B-8192B, ioengine=libaio, iodepth=1
fio-3.28
Starting 1 process
Jobs: 1 (f=1): [W(1)][100.0%][w=1632KiB/s][w=204 IOPS][eta 00m:00s]
fiotest: (groupid=0, jobs=1): err= 0: pid=3616: Sat May 3 00:18:47 2025
write: IOPS=282, BW=2258KiB/s (2312kB/s)(132MiB/60002msec); 0 zone resets
slat (usec): min=6, max=42146, avg=91.13, stdev=759.96
clat (usec): min=1609, max=285038, avg=3450.64, stdev=5465.66
lat (usec): min=1617, max=285046, avg=3541.91, stdev=5565.78
clat percentiles (usec):
| 1.00th=[ 1778], 5.00th=[ 1909], 10.00th=[ 2008], 20.00th=[ 2147],
| 30.00th=[ 2278], 40.00th=[ 2409], 50.00th=[ 2573], 60.00th=[ 2802],
| 70.00th=[ 3130], 80.00th=[ 3916], 90.00th=[ 5407], 95.00th=[ 6980],
| 99.00th=[ 11338], 99.50th=[ 16581], 99.90th=[ 83362], 99.95th=[124257],
| 99.99th=[238027]
bw ( KiB/s): min= 656, max= 3552, per=100.00%, avg=2266.08, stdev=760.91, samples=119
iops : min= 82, max= 444, avg=283.26, stdev=95.11, samples=119
lat (msec) : 2=9.96%, 4=70.89%, 10=17.68%, 20=1.12%, 50=0.21%
lat (msec) : 100=0.08%, 250=0.06%, 500=0.01%
cpu : usr=0.12%, sys=0.26%, ctx=17491, majf=0, minf=12
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=0,16936,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=1
Run status group 0 (all jobs):
WRITE: bw=2258KiB/s (2312kB/s), 2258KiB/s-2258KiB/s (2312kB/s-2312kB/s), io=132MiB (139MB), run=60002-60002msec
Disk stats (read/write):
dm-0: ios=220/23472, merge=0/0, ticks=2652/93376, in_queue=96028, util=97.68%, aggrios=220/21785, aggrmerge=0/2623, aggrticks=2622/79363, aggrin_queue=82138, aggrutil=97.58%
sda: ios=220/21785, merge=0/2623, ticks=2622/79363, in_queue=82138, util=97.58%
@@ -1 +0,0 @@
Замеры производительности дисков DC600M Enterprise. Диски подключены в сервер HP DL360 G9 в рейд контроллер P440ar и собраны в одиночный RAID 0 без включения кеша контроллера.
@@ -1,20 +0,0 @@
#note #storage #disk
Для базы данных нам требуется быстрые диски. Не столько важна пропускная способность сколько IO диска. Так как мы часто выполняем и чтение и запись маленьким блоком.
Обязательное условие это Энтерпрайз диски для ДЦ так как содержат конденсаторы.
Мы можем установить не более 4-х дисков на сервер (sas) и 8-и дисков (sata), так как упремся в пропускную способность интерфейса, а кеши медленные. Можно купить переходник для NVME дисков, но есть подводные на количество линий и возможности бифуркации PCI-e слота. Чисто теоретически можно заказать U.2 HBA модуль для линий 16x на 4 диска и протянуть кабеля до бекплейна, а потом приколхозить их. Тогда мы упираемся в производительность сети. Джае 10ГБ\с канал не покроет мощность NVME дисков
Желаемый диск 2Тб
SSD Samsung PM1643a <MZILT1T9HBJR>
Возможный бомж вариант 2Тб
SSD Samsung PM897 <MZ7L31T9HBNA-00A07>
Альтернативный вендор 2Тб
SSD Intel D3-S4620 <SSDSC2KG019TZ01>
Текст письма
Здравствуйте. В связи с проблемами производительности хранилища для базы данных мониторинга электропотребления PDU, требуется закупить SSD диски
Здравствуйте. Для организации высокопроизводительного хранилища базы данных мониторинга электропотребления PDU требуется закупить SSD диски. Высокопроизводительное хранилище требуется так как текущее хранилище не справляется с возросшей нагрузкой.
Для организации отказоустойчивости требуется что бы каждый сервер в количестве 8 штук был оснащен SSD дисками. Минимальное количество дисков 2-шт на сервер.
Таким образом требуется 16 дисков SSD Samsung PM1643a <MZILT1T9HBJR> или аналогичных.
-1
View File
@@ -1 +0,0 @@
Тест -> Поменять местами жилы на флюке -> F2
-14
View File
@@ -1,14 +0,0 @@
#dock
Маркировка - это нанесение на кабель или устройство отличительного знака, который поможет опознать его.
Маркировка применяется для однотипных вещей например сетевых кабелей или серверов, так как в ЦОДе этого добра навалом. Для инженера требуется уметь читать и наносить маркировку.
Маркировка существует двух видов:
Порты маркируем в соответствии со стандартом ОТКУДА Стойка Юнит Порт - КУДА Стойка Юнит Порт
Для блейд серверов и маршрутизаторов добавляется обозначение B (Bay) оно же лезвие. Номер лезвия указывается на корзине и на маркировке
Порты считаем слева направо сверху вниз если не указаны специальные обозначения
3 5 7
1 2 4 6 8
Если специальные обозначение есть (тип LAN1 или ETH1) то ориентируемся по ним
Порты IPMI (ilo, iDRAC, Irmc) не считаем и указываем их как менеджмент порты отдельно
+2 -1
View File
@@ -18,6 +18,7 @@ theme:
icon: icon:
repo: fontawesome/brands/github repo: fontawesome/brands/github
features: features:
- content.code.copy
- navigation.instant - navigation.instant
- navigation.instant.progress - navigation.instant.progress
- navigation.sections - navigation.sections
@@ -34,7 +35,7 @@ extra:
provider: google provider: google
property: G-WJRFTNJP0B property: G-WJRFTNJP0B
site_author: g.ryzhov site_author: g.ryzhov
copyright: Trustinfo.ru, 2025 copyright: Sailor.lab, 2026
markdown_extensions: markdown_extensions:
- admonition - admonition
- pymdownx.details - pymdownx.details