MYCSS

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

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"

2020-12-23

TrueNAS VM and PPPoE or pass all non-IP Ethernet frames on FreeBSD bridge

Базово, якщо створити віртуальну машину у TrueNAS/FreeNAS то дещо обмежено у користуванні: мережа підключається через bridge а він не пропускає не IP пакети. 

Це тому-що  bridge в TrueNAS/FreeNAS має  ввімкнуте налаштування:  net.link.bridge.pfill_onlyip=1, що обмежує проходження пакетів тільки протоколу IP, (set to 0 to unconditionally pass all non-IP Ethernet frames).

Тому встановимо net.link.bridge.pfill_onlyip=0 в системних налаштуваннях TrueNAS/FreeNAS:

 Sysctl: net.link.bridge.pfill_onlyip

Після перезавантаження віртуальна машина зможе отримати всі non-IP Ethernet пакети котрі недохідні для PPPoE, DHCP або іншого  сервера наприклад в pfSense.

За матеріалами:

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-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-05-24

Script for change interface bridge members to be private


При створенні віртуальних середовищ використовуючи jails FreeBSD , наприклад у FreeNAS,
стала задача ізолювати створенні jails у локальному сегменті мережі.
Так FreeNAS для створення jails почав використовувати пакунок 'iocage', що досить ефективно автоматизує роботу з jails.
Результатом роботи  у мене створенні декілька jails котрі ізольовані в окрему мережу котра  використовує VLAN.
Результатом є створення мережевого моста bridge до котрого додані члени jails і інтерфейс роутера.

2019-03-15

Script for detect changing UID of SAMBA user

FreeNAS 11.2, SAMBA with AD

Sript detect wrong user with sid begin with 900

wbinfo -i EDOMAIN\\user1
EDOMAIN\user1:*:90000012:90000015:test user:/home/EDOMAIN/user1:/bin/sh


#!/bin/sh
wbinfoexe=/usr/local/bin/wbinfo
for user in $(${wbinfoexe} -u)
do
 uid=$(${wbinfoexe} -i "$user" | /usr/bin/awk -F: '{print $3}' | /usr/bin/egrep "^900")
 if [ ! -z "${uid}" ];then
  echo "Abnormal user is $user $uid"
  ${wbinfoexe} --logoff-user="${user}"
  net cache flush
  /etc/ix.rc.d/ix-activedirectory restart
  break
 fi
done

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-09-12

Мережева ізоляція jails через vnet та private bridge members

За допомогою jails є можливість ізолювати процеси у окремому середовищі.
Але якщо jails сконфігуровані з vnet=on і  jails використовують  той самий інтерфейс то  усі jails підключаються до мережі через створення epairs і додавання їх до спільного bridge.
Це дозволяє  спілкуватися jails через мережу, але якщо це не потрібно ?
То можна налаштувати через системні налаштування можливість застосувати правила firewall до bridge або bridge members, це по замовчування вимкнено.
Є завдання не дозволити мережеве спілкування окремим jails за допомогою функціоналу PRIVATE members of brigde.
A private interface does not forward any traffic to any other port that is also designated as a private interface. The traffic is blocked unconditionally so no Ethernet frames will be forwarded, including ARP packets.
private bridge member

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:

2017-12-21

Нотатка. FreeNAS. Jails та VLAN

Використовуючи у FreeNAS ізольовані Jails для ізольованих служб, на-кшталт ownCloud, з'ясував що потрібно обов'язково визначати інтерфейс у налаштуванні відповідного jail  якщо мережевий інтерфейс є з VLAN і використовується VIMAGE .
файлі iface
Робити це треба не через графічний інтерфейс, а у файлі конфігурації відповідного jail, у файлі iface у теці /mnt/{ZFSPOOL}/jails/.{NAME_JAIL}.meta.
Після цього в графічному інтерфейсі можна побачити зміну значення NIC.
Advanced GUI jail
Після перезавантаження у мене почали іти пакети з jail через VLAN інтерфейс.

2016-11-29

FreeNAS SAMBA auto create home directory with AD users

FreeNAS-9.10.1-U4 (ec9a7d3)

Samba (SMB)

Проблема в тому що при визначенні домашньої теки, вона не створювалася там де треба, а в /home/%D/%U.
І користувачі не могли попасти до теки, тому що самба давала вірний шлях, але тек там не було.
Пере визначення template dir допомогло.
Властивості домашньої теки

2016-11-10

2016-09-28

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

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

ipv6 ready