MYCSS

Показ дописів із міткою ZFS. Показати всі дописи
Показ дописів із міткою ZFS. Показати всі дописи

2025-03-23

🚀 Docker-Compose Generator for ElasticSearch Cluster

Are you tired of manually configuring docker-compose.yml files for Elasticsearch clusters? Say hello to this easy-to-use Python script that automates the process! 🐍

📌 What it does:

This script generates a docker-compose.yml file for setting up an ElasticSearch cluster using template files and environment variables. It creates a cluster with Docker containers, including:

  • ElasticSearch nodes with different roles (master, data, ingest, coordinator)
  • Kibana for visualization
  • Additional service containers

🔧 How it works:

  • Configure your cluster setup using a .env file.
  • Run the script, and voilà! Your docker-compose.yml is ready.

📶 Test Environment:

The generated cluster was tested on a TrueNAS SCALE 24.10.2 server, deployed as a custom application by importing the YAML file. Storage was configured using ZFS Datasets, ensuring reliability and scalability.

💡 Why it’s awesome:

  • Saves time and reduces errors in manual configuration.
  • Flexible and customizable for different cluster setups.
  • Perfect for DevOps engineers and developers working with ElasticSearch.

🔗 Script: https://github.com/lexxai/es_cluster_docker_helper
🔗 Prototype: https://github.com/evermight/elastic-cluster-docker-compose

2024-10-12

Restore a VM from a backup file on a ZFS snapshot over NFS in Proxmox VE by use GUI.

Умови:

Proxmox VE server  періодично робить резервні копії до NFS спільної теки котра розміщена на NAS сервері.

NAS це TrueNAS сервер що зберігає дані у ZFS файловій системі. TrueNAS автоматично налаштований робити періодичні знімки (snapshots) ZFS dataset де розміщенні дані для NFS теки.

У VM сервера знайдено підозрілі файли за назвою "." розміром 1024 bytes з бінарним вмістом. Необхідно провести аналіз в "offline copy" сервера.

Задача:

Відновити віртуальну машину з попередньої резервної копії. 

Рішення:

Під'єднати попередні періодичні знімки (snapshots) ZFS dataset, що створені на стороні NAS сервера, для відновлення віртуальної машини з її резервної копії.

Підключення до консолі Proxmox Node.

  • Proxmox node: ns21
  • NFS share: nfs-ns58-10g
  • Target data: 2024-10-11
  • Target VM ID: 150

Proxmox console.
ZFS snapshots зберігаються за замовчуванням у прихованій теці ".zfs".

Знайдено цільовий шлях де зберігаються потрібні резервні копії: /mnt/pve/nfs-ns58-10g/.zfs/snapshot/auto-2024-10-11_00-00

2024-10-05

Note. FreeBSD. pkg create. Backup of erlang-21. Сталася класична ситуація з оновленнями. Postmortem Report.

Умови:

Є віртуальна машина з FreeBSD під керуванням Proxmox VE.

Є застосунок 'pleroma' котрий працює на базі erlang

Причини:

Для підтримання інфраструктури операційна система оновлюється і пакунки підтримуються в актуальному стані.
Застосунок працює, в пам'яті, все нормально. Користувачі заносять нові дані...

2023-09-05

Нотатка: збільшення диску iscsi, TrueNAS, zfs, ubuntu

Блочний пристрій сервер Ubuntu - sda = 500G

lsblk
sda           8:0    0   500G  0 disk
└─sda1        8:1    0   500G  0 part

Збільшую том іscsi до 600G (TrueNAS).

Новий розмір тому для iscsi target

2023-05-13

Нотатка. Монтування дисків NFS, ZFS поверх iSCSI. FreeBSD rc.d.

Є підключення диска через iSCSI, надалі диск форматується у ZFS. При завантаженні системи потрібно зачекати мережевого з'єднання iSCSI Initiatior з iSCSI target. Потім, змотувати ZFS pool. Потім запустити hook скрипт, після успішного монтування.  

source imgage : https://www.data-storage.uk
iSCSI Storage

iSCSI

/etc/rc.conf:

#iSCSI
iscsid_enable="YES"
iscsictl_enable="YES"
iscsictl_flags="-Aa"
/etc/iscsi.conf:
t0 {
    TargetAddress   = nas1
    TargetName      = iqn.2023-05.net.server.nas1:server1-storage
    AuthMethod      = CHAP
    chapIName       = server1
    chapSecret      = "kdwkjdqhdww3qq@@6td3_3eiw9e7w43"
}

ZFS: 

/etc/rc.conf:

#iSCSI_ZFS
iscsi_zfs_enable="YES"
iscsi_zfs_wait_iqn="server1-storage"
iscsi_zfs_wait_pool="storage"
iscsi_zfs_post_hook="/root/script/post-mount.sh"
iscsi_zfs_pre_hook="/root/script/pre-umount.sh"

2021-06-08

Нотатка для себе. Відновити GPT таблицю, випадково стерту в Proxmox з ZFS.

Proxmox. ZFS. HDD 3 TB.

Так сталося що випадково проініціалізував не той диск за допомогою команди fdisk: g   create a new empty GPT partition table.

Так я зрозумів що накоїв і диск ZFS працював зі старою partitional table доки не перезавантажиться система, тому почав створювати свіжі резервні копії, на мережевий диск ceph. І відновив віртуальні машини на іншому сервері.

Після копіювання, перезавантажив систему - диск пустий.

Відновлення

Спроба запуску TestDisk для аналізу і відновлення, знайдено в режимі Intel ост таку таблицю, вона не правдива. Не підходить.

TestDisk scan ZFS
Тому так як є інший Proxmox сервер з ZFS диском на 3ТБ, я виконав перенесення структури з робочого диску на не робочий.

2020-03-29

Нотатка: zfs replication to external usb drive


Нотатка для себе, так я роблю реплікацію з зовнішнім USB накопичувачем у FreeNAS.
Зовнішній USB накопичувач монтується безпосередньо перед реплікацією, і розмонтовується після реплікації.
Зовнішній диск монтується за GPT ідентифікацією диску - GPTID (zpool list -v extusb-01), та ідентифікацією zfs pool за POOL_GUID (zpool list -o guid extusb-01).
Зовнішній диск був створений майстром створення zfs pool у FreeNAS.
Скрипт /root/script/backup-2-extusb-01-next.sh  запускається за розкладом через cron.

2019-11-01

Нотатка. Як обмежити швидкість реплікації ZFS

За звичай швидкість треба максимальна, але інколи треба не навантажити "живу" систем у і скопіювати данні. Як це зробити ?
Шейпінгом на рівні мережевих протоколів, щось не то... хоча і можливо.
За звичай реплікація zfs виконується через потоки, zfs send | zfs recv, або віддалений варіант zfs send | ssh -e ... zfs recv.
Тому додамо щось між двома потоками. 
На вихід прийде  cstream - direct data streams, with bandwidth limiting, FIFO, audio, duplication and extended reporting support.
Підгледів у proxmos:
pvesm export zpool:vm-111-disk-2 zfs - -with-snapshots 1 -snapshot __replicate_111-1_1572565050__ -base __replicate_111-1_1572548430__ | /usr/bin/cstream -t 5000000 | /usr/bin/ssh -e none -o 'BatchMode=yes' -o 'HostKeyAlias=s1' root@10.1.0.1 -- pvesm import zpool:vm-111-disk-2 zfs - -with-snapshots 1 -base __replicate_111-1_1572548430__ 
| /usr/bin/cstream -t 5000000 | 
Таким чином zfs send | cstream -t 5000000 | zfs recv , обмежить швидкість реплікації до 5МB/s.

2019-10-30

Нотатка: Proxmox заміна диску у пулі ZFS

Використвую Proxmox VE
Пул  ZFS  Mirror вийшов з ладу один з дисків, як замінити ?

1) Replace the physical failed/offline drive, /dev/sdc

Initialize Disk
2) From the WebUI, Servername -> Disks -> Initialize Disk with GPT (/dev/sdc)
or fdisk /dev/sdc, -g, -w.

Copy the partition table from /dev/sdb to /dev/sdc
3) sgdisk --replicate=/dev/sdc /dev/sdb

Ensure the GUIDs are randomized
4) sgdisk --randomize-guids /dev/sdc

Then replace the disk in the ZFS pool,
5) zpool replace rpool /dev/sdc1

За матеріалами:
https://forum.proxmox.com/threads/zfs-disk-replacement.41230/

2019-10-09

Нотатки. Тестування iSCSI Mutltipath. Windows Server 2019, FreeNAS


Маю Windows Server 2019 для Hyper-V.
Вирішив протестувати  iSCSI Mutltipath на двох 1Gb мережевих адаптерах  що під'єднанні до сервера FreeNAS з iSCSI службою.
Результат, завантажуються два інтерфейси з загальним коефіцієнтом десь 1.4.
FreeNAS служба iSCSI з використанням ZVOL на пулі ZFS Z2, з шести дисків SATA 3.
Приклади налаштування iSCSI Mutltipath Using MPIO with the Windows Server iSCSI Initiator - Petri, FreeNAS iSCSI Configuration for MPIO - Virtualization Howto



2019-02-22

FreeNAS-11.2-U2, Samba, VFS Object: default_quota.

Попередньо я вивчав як зробити реальні квоти для користувачів у FreeNAS:
Маємо те, що маємо. Усе що відбувається - на краще: FreeNAS, ZFS, User Quota, Samba.

Тепер задачу з реальним визначення квоти для користувача ZFS можемо зробити додавши VFS Object: default_quota до необхідної спільної теки у налаштуваннях Sharing / SMB .
З документації FreeNAS: default_quota - Stores the default quotas that are reported to a windows client in the quota record of a user.

Додавання VFS Object: default_quota
Перевіряємо поточне значення квоти для змонтованого диску Z: у ОС Windows 10.
Квота 80 GB

Встановлюю персональну квоту для певного користувача домену на zfs dataset.
DEFAULT_QUOTA=65G
USERS_DATASET=poolz2/samba/users
LOGON=${DOMAINNAME}\\${USERNAME}
/sbin/zfs set "userquota@${LOGON}=${DEFAULT_QUOTA}" ${USERS_DATASET}
Перевіряємо нове значення квоти для  змонтованого диску Z: у ОС Windows 10.
Квота 65 GB
P.S. Автор розробки доповнень до FreeNAS  коментує питання по цій темі:
CIFS/SMB - AD - Quotas and reported share size | iXsystems Community
  • What minimum VFS Objects should be used for worked users quota ?
    only zfs_space, only ixnas. And default_quota it not need to use since 11.2-U2 ?
    - Only ixnas.
  • You can set a base quota for all authenticated users by adding the following auxiliary parameter for your share: ixnas:base_user_quota = 10G. You can of course change this value. What happens is the first time a user connects to the share, samba will automatically set a user quota at 10GB for him. 
  • You can remove "zfsacl" from your vfs_objects list. ixnas does the same thing.
ixnas:base_user_quota

2018-04-19

FreeNAS, ZFS, User Quota, Samba

Task: Apply ZFS user quota to Smaba

Source:

zpool with samba user home folders: poolz2/samba/users

Allow request about quota for everyone:
zfs allow everyone userquota,userused poolz2/samba/users

Set usrer quota 120G for domain user : DOMAIN\username
zfs set userquota@"DOMAIN\username"=120G poolz2/samba/users

Tune SAMBA,  /usr/local/etc/smb4.conf:
get quota command = /mnt/poolz2/home/scripts/quota_get.sh %U %D

Reload SAMBA:
killall -HUP smbd 
Or change via GUI of FreeNAS
Example of GUI of SMB Services (FreeNAS11.2), add quota.

Soulution:

Script for get quota data: /mnt/poolz2/home/scripts/quota_get.sh
#!/bin/sh
rtype=$4
if [ "${rtype}" == -1 ]; then
 exit
fi
username=$1
if [ ! -z  "$username" ]; then
  domainname=$2
  requestpath=${PWD}
  DATASETNAME=`/bin/df -l ${requestpath} | /usr/bin/tail -n 1 | /usr/bin/awk '{ print $1 };'`
  info=`/sbin/zfs userspace -Hp ${DATASETNAME}  | /usr/bin/grep -i ${domainname}'\\\\'${username}`
  usedbytes=`echo ${info}| /usr/bin/awk '{ printf "%.f", $4/1024 };'`;
  quotabytes=`echo ${info}| /usr/bin/awk '{ if ( $5 == "none" ) { print "0"} else { printf "%.f", $5/1024 }  };'`;
  if [ "$quotabytes" != 0 ]; then
   echo 2 $usedbytes $quotabytes $quotabytes $usedbytes $quotabytes $quotabytes
  fi
fi
exit

Example of GUI of Sharing SMB (FreeNAS11.2).
Easy script for define default quota for all users. I plan run it just by cron.
#!/bin/sh

USERS_DATASET=poolz2/samba/users
DOMAINNAME=SOMEDOMAIN
DEFAULT_QUOTA=80G

/sbin/zfs allow everyone userquota,userused ${USERS_DATASET}
mountpoint=`/bin/df  -l ${USERS_DATASET} | /usr/bin/tail -n 1 | /usr/bin/awk '{ print $6 };'`
for file in ${mountpoint}/*; do
    USERNAME=$(/usr/bin/basename "$file")
    LOGON=${DOMAINNAME}\\${USERNAME}
    QUOTA=`/sbin/zfs get -H "userquota@${LOGON}" ${USERS_DATASET} | /usr/bin/awk '{ print $3 };'`
    #echo ${LOGON} : ${QUOTA}
    if [ "$QUOTA" == "none" ];then
        /sbin/zfs set "userquota@${LOGON}=${DEFAULT_QUOTA}" ${USERS_DATASET}
        #echo Was set default quota ${DEFAULT_QUOTA} for ${LOGON}
    fi
done

#/sbin/zfs userspace ${USERS_DATASET}

More:

2018-03-13

FreeBSD шифрування файлової системи ZFS з використанням віддалених ключів



Нотатка для себе.
Необхідно створити систему котра використовує шифрування дисків, zfs кореневу файлову систему, і для шифрування використовуються ключі що зберігаються на віддаленому сервері.

Моя система має 3 диски, один диск (Flash/SSD) завантажувальний з файловою системою ZFS (ZROOT). Та 2 диски для шифрованого zfs пулу котрі  повинні замінити собою перший диск для запису

На перший диск встановлено  було операційну систему FreeBSD 11.1 майстром встановлення з вибором ZFS Boot.

Коли забув ти рідну мову, біднієш духом ти щодня...
When you forgot your native language you would become a poor at spirit every day ...

Д.Білоус / D.Bilous
Рабів до раю не пускають. Будь вільним!

ipv6 ready