Записи с Меткой ‘ linux

Systemd Centos7

Read more: RHEL 7 / CentOS 7 : How to get started with Systemd @ All Linux User’s Blog http://www.tejasbarot.com/2014/07/22/rhel-7-centos-7-how-to-get-started-with-systemd/#ixzz3BJGYYfVu
Under Creative Commons License: Attribution Non-Commercial No Derivatives
Follow us: @imtejasbarot on Twitter | AllLinuxUsersBlog on Facebook

As the Systemd now replaces SysVinit, it is time to get familiar with it and learn new commands.
Systemd is quicker because it uses fewer scripts and tries to run more tasks in parallel (Systemd calls them units).
The Systemd configuration is stored in the /etc/systemd directory.

Boot process
Systemd primary task is to manage the boot process and provides informations about it.
To get the boot process duration, type:

# systemd-analyze
Startup finished in 422ms (kernel) + 2.722s (initrd) + 9.674s (userspace) = 12.820s
To get the time spent by each task during the boot process, type:

# systemd-analyze blame
7.029s network.service
2.241s plymouth-start.service
1.293s kdump.service
1.156s plymouth-quit-wait.service
1.048s firewalld.service
632ms postfix.service
621ms tuned.service
460ms iprupdate.service
446ms iprinit.service
344ms accounts-daemon.service

7ms systemd-update-utmp-runlevel.service
5ms systemd-random-seed.service
5ms sys-kernel-config.mount
Note: You will find additional information on this point in the Lennart Poettering’s blog.

Journal analysis
In addition, Systemd handles the system event log, a syslog daemon is not mandatory any more.
To get the content of the Systemd journal, type:

# journalctl
To get all the events related to the crond process in the journal, type:

# journalctl /sbin/crond
Note: You can replace /sbin/crond by `which crond`.

To get all the events since the last boot, type:

# journalctl -b
To get all the events that appeared today in the journal, type:

# journalctl —since=today
To get all the events with a syslog priority of err, type:

# journalctl -p err
To get the 10 last events and wait for any new one (like “tail -f /var/Log/messages”), type:

# journalctl -f
Note: You will find additional information on this point in the Lennart Poettering’s blog or Lennart Poettering’s video (44min: the first ten minutes are very interesting concerning security issues).

Control groups
Systemd organizes tasks in control groups. For example, all the processes started by an apache webserver will be in the same control group, CGI scripts included.

To get the full hierarchy of control groups, type:

# systemd-cgls
│ └─user-1000.slice
│ └─session-1.scope
│ ├─2889 gdm-session-worker [pam/gdm-password]
│ ├─2899 /usr/bin/gnome-keyring-daemon —daemonize —login
│ ├─2901 gnome-session —session gnome-classic
. .
└─785 /sbin/iprupdate —daemon
To get the list of control group ordered by CPU, memory and disk I/O load, type:

# systemd-cgtop
Path Tasks %CPU Memory Input/s Output/s
/ 213 3.9 829.7M — —
/system.slice 1 — — — —
/system.slice/ModemManager.service 1 — — — —
To kill all the processes associated with an apache server (CGI scripts included), type:

# systemctl kill httpd
To put resource limits on a service (here 500 CPUShares), type:

# systemctl set-property httpd.service CPUShares=500
Note1: The change is written into the service unit file. Use the –runtime option to avoid this behavior.
Note2: By default, each service owns 1024 CPUShares. Nothing prevents you from giving a value smaller or bigger.

To get the current CPUShares service value, type:

# systemctl show -p CPUShares httpd.service
Sources: New control group interface, Systemd 205 announcement.

Service management
Systemd deals with all the aspects of the service management. The systemctl command replaces the chkconfig and the service commands. The old commands are now a link to the systemctl command.

To activate the NTP service at boot, type:

# systemctl enable ntpd
Note1: You should specify ntpd.service but by default the .service suffix will be added.
Note2: If you specify a path, the .mount suffix will be added.
Note3: If you mention a device, the .device suffix will be added.

To deactivate it, start it, stop it, restart it, reload it, type:

# systemctl disable ntpd
# systemctl start ntpd
# systemctl stop ntpd
# systemctl restart ntpd
# systemctl reload ntpd
To know if the NTP service is activated at boot, type:

# systemctl is-enabled ntpd
To know if the NTP service is running, type:

# systemctl is-active ntpd
To get the status of the NTP service, type:

# systemctl status ntpd
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)
If you change a service configuration, you will need to reload it:

# systemctl daemon-reload
To get the list of all the units (services, mount points, devices) with their status and description, type:

# systemctl
To get a more readable list, type:

# systemctl list-unit-files
To get the list of services that failed at boot, type:

# systemctl —failed
To get the status of a process (here httpd) on a remote server (here rhel7.example.com), type:

# systemctl -H root@rhel7.example.com status httpd.service
Run levels
Systemd also deals with run levels. As everything is represented by files in Systemd, target files replace run levels.

To move to single user mode, type:

# systemctl rescue
To move to the level 3 (equivalent to the previous level 3), type:

# systemctl isolate runlevel3.target

# systemctl isolate multi-user.target
To move to the graphical level (equivalent to the previous level 5), type:

# systemctl isolate graphical.target
To set the default run level to non-graphical mode, type:

# systemctl set-default multi-user.target
To set the default run level to graphical mode, type:

# systemctl set-default graphical.target
To get the current default run level, type:

# systemctl get-default
To stop a server, type:

# systemctl poweroff
Note: You can still use the poweroff command, a link to the systemctl command has been created (the same thing is true for the halt and reboot commands).

To reboot a server, suspend it or put it into hibernation, type:

# systemctl reboot
# systemctl suspend
# systemctl hibernate
Linux standardization
Systemd‘s authors have decided to help Linux standardization among distributions. Through Systemd, changes happen in the localization of some configuration files.

To get the server hostnames, type:

# hostnamectl
Static hostname: rhel7.example.com
Icon name: computer-laptop
Chassis: laptop
Machine ID: bcdc71f1943f4d859aa37e54a422938d
Boot ID: f84556924b4e4bbf9c4a82fef4ac26d0
Operating System: Red Hat Enterprise Linux Everything 7.0 (Maipo)
CPE OS Name: cpe:/o:redhat:enterprise_linux:7.0:beta:everything
Kernel: Linux 3.10.0-54.0.1.el7.x86_64
Architecture: x86_64
Note: There are three kinds of hostnames: static, pretty, and transient.
“The static host name is the traditional hostname, which can be chosen by the user, and is stored in the /etc/hostname file. The “transient” hostname is a dynamic host name maintained by the kernel. It is initialized to the static host name by default, whose value defaults to “localhost”. It can be changed by DHCP or mDNS at runtime. The pretty hostname is a free-form UTF8 host name for presentation to the user.” Source: RHEL 7 Networking Guide.

To assign the rhel7 hostname permanently to the server, type:

# hostnamectl set-hostname rhel7
Note: With this syntax all three hostnames (static, pretty, and transient) take the rhel7 value at the same time. However, it is possible to set the three hostnames separately by using the –pretty, –static, and –transient options.

To get the current locale, virtual console keymap and X11 layout, type:

# localectl
System Locale: LANG=en_US.UTF-8
VC Keymap: en_US
X11 Layout: en_US
To assign the en_GB.utf8 value to the locale, type:

# localectl set-locale LANG=en_GB.utf8
To assign the en_GB value to the virtual console keymap, type:

# localectl set-keymap en_GB
To assign the en_GB value to the X11 layout, type:

# localectl set-x11-keymap en_GB
To get the current date and time, type:

# timedatectl
Local time: Fri 2014-01-24 22:34:05 CET
Universal time: Fri 2014-01-24 21:34:05 UTC
RTC time: Fri 2014-01-24 21:34:05
Timezone: Europe/Madrid (CET, +0100)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: no
Last DST change: DST ended at
Sun 2013-10-27 02:59:59 CEST
Sun 2013-10-27 02:00:00 CET
Next DST change: DST begins (the clock jumps one hour forward) at
Sun 2014-03-30 01:59:59 CET
Sun 2014-03-30 03:00:00 CEST
To set the current date, type:

# timedatectl set-time YYYY-MM-DD
To set the current time, type:

# timedatectl set-time HH:MM:SS
To get the list of time zones, type:

# timedatectl list-timezones
To change the time zone to America/New_York, type:

# timedatectl set-timezone America/New_York
To get the users’ list, type:

# loginctl list-users
42 gdm
1000 tom
0 root
To get the list of all current user sessions, type:

# loginctl list-sessions
1 1000 tom seat0

1 sessions listed.
To get the properties of the user tom, type:

# loginctl show-user tom
Timestamp=Fri 2014-01-24 21:53:43 CET

CentOS 7 Lamp


+ правила обязятельно для firewalld на включение httpd

Cubietruck + phpsane + m1005 mfp


echo ‘deb http://ftp.ru.debian.org/debian wheezy-backports main’ >> /etc/apt/sources.list
echo ‘modprobe bcmdhd’ >> /etc/rc.local
apt-get update
apt-get install php5 apache2 cups sane netpbm gocr poppler-utils htop ifplugd iotop ntop zabbix-agent

Потом скачиваем сам phpSane
#wget http://garr.dl.sourceforge.net/project/phpsane/phpsane/0.7.1/phpSANE-0.7.1.zip

Создаем каталог для него
#mkdir /var/www/phpsane

перемещаем туда архив phpSane
#mv phpSANE-0.7.1.zip /var/www/phpsane/phpSANE-0.7.1.zip

и распаковываем его
#unzip phpSANE-0.7.1.zip

Далее сменим владельца данного каталога и его содержимого
#chowr -R www-data:www-data /var/www/phpsane

так же следует внести пользователя www-data в группу saned
#addgroup www-data saned

Теперь настроим Apache. Для этого в файле /etc/apache2/sites-available/default изменим директиву directoryindex
DirectoryIndex index.html index.php phpsane.php

И перезапустим apache
#service apache2 restart

Так же стоит обратить внимание на то, что для работы phpSANE нужны дополнительные пакеты. И их придется установить:
#apt-get install netpbm gocr poppler-utils

Теперь после захода на страницу http://ip-address/phpsane у нас должен открыться веб-интерфейс

Добавить Listen IP:631 интерфейсов
echo ‘Port 631’ >> /etc/cups/cupsd.conf
Добавить во все секции (Locale, admin … etc)
Allow all иначе на морде вылезет Forbringen

Дальше шарим принтера из веб морды и сканим по сети.


Завелось только при:
Драйвера HPAIO ставить нельзя! Не работают!


  # sane-find-scanner will now attempt to detect your scanner. If the
  # result is different from what you expected, first make sure your
  # scanner is powered up and properly connected to your computer.

  # No SCSI scanners found. If you expected something different, make sure that
  # you have loaded a kernel SCSI driver for your SCSI adapter.
  # Also you need support for SCSI Generic (sg) in your operating system.
  # If using Linux, try "modprobe sg".

found USB scanner (vendor=0x03f0, product=0x3b17) at libusb:001:002
  # Your USB scanner was (probably) detected. It may or may not be supported by
  # SANE. Try scanimage -L and read the backend's manpage.

  # Not checking for parallel port scanners.

  # Most Scanners connected to the parallel port or other proprietary ports
  # can't be detected by this program.

scanimage -L
device `hpljm1005:libusb:001:002' is a Hewlett-Packard LaserJet M1005 multi-function peripheral


ОБЯЗАТЕЛЬНО ВНЕСТИ АПАЧ в группы saned scanner lp lpadmin

addgroup www-data saned
addgroup -a -G lpadmin

Все проверить по cat /etc/group

Сходу завелась версия phpsane 0.7.2

Для версии 0.8.0 нужны подпилки в конфигах.
Сделать руками
$temp_dir = «./tmp/»; // temporary directory for storing preview files
$save_dir = «./output/»; // destination directory for scanned files
$scanner_dir = «./scanners/»; // destination directory for storing and reading scanner configuration files

2. По дефолту поставить русский
$lang_id = 4;

3. Поставить просмотр по умолчанию равным $PREVIEW_HEIGHT_MM = 297; — ИНАЧЕ ОШИБКА

4. Убрать не нужные Форматы
//add_page_size(‘A0’, 841, 1189);
//add_page_size(‘A1’, 594, 841);
//add_page_size(‘A2’, 420, 594);
//add_page_size(‘A3’, 297, 420);

5. Прописать СВОИ пути к pdfunite и gocr
по дефолту
$GOCR = «/opt/bin/gocr»; //optional ocr binary
$PDFUNITE = «/usr/local/bin/pdfunite»; //optional PDF merge binary

Я тупо прописал симлинки, такого формата (установить gocr и poppler-utils)
ln -s /usr/bin/pdfunite /usr/local/bin/pdfunite

6. Сканер ругался на параметр scanimage — я его закомментировал.
//$usr_opt = » —jpeg-quality 0″;
$usr_opt = «»;

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

+ Был косяк с НЕПОЛНЫМ сканированием листа A4. Не хватало 2 см до конца листа!
При этом через консоль scanimage > image.ppm сканировал ВЕСЬ лист.
В консоль сливал

 scanimage > test.ppm
scanimage: rounded value of br-x from 220 to 220
scanimage: rounded value of br-y from 330 to 330


Поэтому такие настройки я дал и превьюшке и полному скану в конфигах, заменив дефолтные A4.

Читать далее

xcp zabbix agent

сначала переводим в статус enabled=1 все нужные репозитории в /etc/yum.repo.d/

wget http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
sudo rpm -Uvh epel-release-5*.rpm
ls -1 /etc/yum.repos.d/epel*

sudo rpm -Uvh http://repo.zabbix.com/zabbix/2.2/rhel/5/i386/zabbix-release-2.2-1.el5.noarch.rpm
(Можно посмотреть тут http://www.alsigned.ru/?p=2463)

yum install zabbix vim

vi /etc/zabbix/zabbix_agentd.conf

diff centos & deb config

[root@srv-vm2 ~]# diff /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf_deb 
< LogFile=/var/log/zabbix/zabbix_agentd.log
> LogFile=/var/log/zabbix-agent/zabbix_agentd.log
< LogFileSize=0
> LogFileSize=10
< Server=
> Server=192.168.x.x
< # StartAgents=3
> StartAgents=5
< Hostname=Zabbix server
> Hostname=srv-vm2
< #	Installing Zabbix will create include directory in /usr/local/etc, unless modified during the compile time.
> #	Installing Zabbix will create include directory in /etc/zabbix, unless modified during the compile time.
< Include=/etc/zabbix/zabbix_agentd.d/
< # Include=/usr/local/etc/zabbix_agentd.userparams.conf
< # Include=/usr/local/etc/zabbix_agentd.conf.d/
> # Include=/etc/zabbix/zabbix_agentd.userparams.conf
> # Include=/etc/zabbix/zabbix_agentd.conf.d/
> Include=/etc/zabbix/zabbix_agentd.conf.d/


apt through proxy

Доступ через прокси сервер

Если прокси-сервер не был указан при установке системы, то для того, чтобы APT работал с соединением через прокси-сервер, нужно добавить в каталог «/etc/apt/apt.conf.d/» текстовый файл примерно с таким содержанием:

чтобы APT “ходил” через прокси-сервер

Acquire::http::proxy «http://user:password@proxy_IP:proxy_PORT»;
Acquire::ftp::proxy «http://user:password@proxy_IP:proxy_PORT»;
Acquire::::Proxy «true»;
Если сервер без авторизации, то user:password@ следует убрать. Имя файла можно задать произвольное, например, «/etc/apt/apt.conf.d/99proxy». Также можно просто добавить эти же строки в конфигурационный файл «/etc/apt/apt.conf».


Спасибо http://debian-help.ru/articles/nastroika-nfs-servera-debian/

Установка NFS-сервера.
Небольшое замечание. Если вы используете ядро 2.2.13 и выше, вы можете использовать nfs-kernel-server. Кроме него можно использовать nfs-user-server. Этот пакет более медленный, но имеет больше функций и его легче дебажить, чем nfs-kernel-server.

Установка осуществляется следующей командой:

# aptitude install nfs-kernel-server nfs-common portmap
После установки нужно указать, доступ к каким директориям мы предоставляем. Для этого правим файл /etc/exports. Для NFSv3 и ранее содержимое файла будет выглядеть примерно так:

/mnt/movie,async,no_subtree_check) /mnt/user,async,no_subtree_check)
В NFSv4 предоставляется доступ к главной директории и ее поддиректориям. Таким образом в первой строке описывается главная директория, а в последующих — поддиректории, с отдельной строки:

/mnt, fsid=0, async, no_subtree_check) /mnt/movie, async, no_subtree_check) /mnt/user, async, no_subtree_check)
В этом примере директория /mnt/movie будет доступна всем в сети, а /mnt/user — только с компьютера с адресом при этом можно указать несколько конкретных адресов в одной строке разделив блоки описания пробелом.

Пояснения к параметрам в строке:

/mnt/movie — путь к директории, доступ к которой необходимо предоставить. — описание сети, из которой можно получить доступ к директории. Также можно указать конкретный адрес, к примеру, Кроме того, NFS понимает шаблоны с применением символов * и ?.
rw — говорит о том, что предоставляются права как на чтение, так и на запись. Если нужно разрешить только читать из директории, то следует указать параметр ro.
async — включает возможность обслуживания клиентов еще до окончания действия предыдущей команды на запись. Это может значительно увеличить быстродействие при большом количестве пользователей, но снижает надежность. По умолчанию, включена опция sync.
no_subtree_check — отключает проверку вложенных директорий.

Прочие опции:

secure — при включении данной опции для соединения будут использоваться порты с номером ниже 1024. Эта опция включена по умолчанию, чтобы её отключить, используйте параметр insecure.
no_wdelay — эта опция не действует при включенной опции async. В нормальном состоянии NFS-сервер немного задерживает запись на диск, если уже ведется запись или ожидается поступление запроса на запись. Это позволяет запустить несколько процессов записи на диск с помощью одной команды, что увеличивает производительность. Однако, если NFS-сервер получает в основном мелкие, не связанные между собой, запросы, то стандартное поведение может снизить производительность, поэтому доступна опция no_wdelay чтобы отключить задержку перед записью.
nohide — в случае когда экспортируются две директории, одна из которых вложенная, при монтировании только родительской директории вложенная будет видна как пустая. Чтобы предотвратить такой эффект, можно использовать данный параметр. Стоит учесть, что данный параметр работает только для экспортирования по конкретному ip-адресу. Обратным параметром является параметр hide.
crossmnt — данный параметр похож на параметр nohide, но дделает возможным для клиентов переходить из файловой системы помеченой параметром crossmnt в экспортированную файловую систему смонтированную в ней. То есть когда вложенная файловая система «B» смонтирована внутри файловой системы «A», установка параметра crossmnt для «A» имеет тот же эффект, как установка параметра nohide для «B».
fsid=num|root|uuid — NFS необходимо идентифицировать каждую файловую систему, которую она экспортирует. Обычно используется UUID. Однако ядра Linux ниже 2.6.20 не понимают UUID, поэтому необходимо устанавливать данный параметр, к примеру fsid=root или fsid=0.

Опции подмены идентификатора пользователя:

nfsd основывает свой доступ к файлами на сервере на gid и uid, предоставляемых в каждом NFS RPC запросе. По привычке пользователь будет ожить что он может получить доступ к своим файлам на сервере, как к обычной файловой системе. Это требует того, чтобы одни и те же gid и uid использовались на клиентской и серверной машинах. Это не всегда верно или не всегда желательно.

Очень часто не желательно, чтобы пользователь root на клиентской машине также воспринимался как root при доступе к файлам на NFS-сервере. Чтобы это предотвратить uid 0 обычно подменяется другим id: так называемым «анонимом» или nobody. Этот тип поведения (называемый «root squashing») применяется по умолчанию и может быть отключен параметром no_root_squash.

По умолчанию, exportfs использует uid/gid с номером 65534 для доступа с подменой. Эти значения могут быть изменеы параметрами anonuid и anongid. Наконец, вы можете подменить все пользовательские запросы на анонимные с помощью параметра all_squash.

Вот полный список параметров для подмены идентификаторов:

root_squash — подменяет запросы от uid/gid 0 (root) на анонимыне uid/gid.
no_root_squash — выключает подмену uid/gid для root. Эта опция используется в основном для бездисковых клиентских машин.
all_squash — используется обычно для публичного экспорта директорий. Обратный параметр — no_all_squash.
anonuid и anongid — применяется для указания uid/gid для анонима. Это может быть полезно, если какая либо директория экспортируется для конкретного пользователя, заведенного в системе.

После описания всех директорий, к которым предоставляем доступ, сохраняем файл и перезапускаем NFS-сервер, так как после установки он запускается автоматически:

# /etc/init.d/nfs-kernel-server restart
Полезные утилиты.
Чтобы не передергивать сервис, можно мягко применить измененные настройки командой:

# exportfs -ra
Где параметр -a говорит о том, что нужно экспортировать все директории из файла /etc/exports, а параметр -r заставляет реэкспортировать список всех директорий очистив текущий список. Вообще говоря, если нужно пополнить список экспортированных директорий, то нужно использовать параметр -a, а если нучно убрать все текущие и добавить только те, что есть в /etc/exports, то следует использовать параметр -r. Также может быть полезен параметр -u, который позволяет отменить экспорт определенных директорий и параметр -f, который очищает текущую таблицу экспорта ядра и все активные пользователи при последующем запросе получат новый список экспортируемых директорий.

Узнать различную информацию об экспорте можно с помощью утилиты showmount:

showmount без параметров отображает список подключенных клиентов,
-a или —all — показывает все используемые точки монтирования с ip-адресами и директориями. Так можно узнать, какие машины пользуются NFS-сервером и какие директории на них смонтированы.
-d — отображает только список директорий смонитированных клиентами.
-e — выводит список экспорта NFS-сервера.

Утилита nfsstat отображает диагностическую информацию об активности как NFS-сервера, так и клиента.

Параметры команды nfsstat:

-s — вывести только серверную статистику. По умолчанию выводится как серверная, так и клиентская информация.
-c — вывести только клиентскую статистику.
-n — вывести только статистику NFS. По умолчанию, выводится как NFS, так и RPC статистика.
-2 — вывести данные только по NFS v2. По умолчанию, выводится информация обо всех версиях имеющих не нулевую статистику.
-3 — вывести данные только по NFS v3.
-4 — вывести данные только по NFS v4.
-m — отобразить информацию о всех смонтированных NFS файловых системах. Если указан данный параметр, то все остальные игнорируются.
-r — вывести только статистику NFS.
-l — отобразить информацию в виде списка.

Монтирование на клиентской машине.
При необходимости устанавливаем пару пакетов:

# aptitude install nfs-common portmap
Теперь создаем директории для монтирования, к примеру:

# mkdir -p /home/movie /home/user
Затем просто монтируем в них директории, экспортируемые с NFS-сервера:

# mount -t nfs /home/movie # mount -t nfs /home/user
Монтирование при использовании NFSv4:

mount -t nfs4 /home/mnt
То есть при монтировании экспортируемых директорий по NFSv4 необходимо указывать путь на сервере относительно основной директории.

Размонтирование делается как обычно, к примеру:

# umount /home/movie
Настройка автоматического монтирования.
Для того, чтобы на клиентской машине экспортируемые директории монтировались автоматически вносим следующие строки в файл /etc/fstab: /home/movie nfs rw,async /home/user nfs rw,async
Порядок элементов строки: что, куда, тип файловой системы, параметры.

Бывают следующие параметры:

soft/hard — определяет поведение после превышения количества запросов на подключение. Если ничего не указано или указан параметр hard, то запросы будут отправляться бесконечно. Если задан параметр soft, то после таймаута быдет выдана ошибка. Параметр soft может привести к порче данных, поэтому его следует использовать в случаях когда больше требуется отзывчивость, чем надежность. Увеличение значения параметра retrans может снизить риск порчи данных.
timeo=n — время (в десятках секунд) которое NFS-клиент ждет ответа перед повтором запроса.
retrans=n — сколько раз NFS-клиент повторяет запрос перед тем как перейти к дальнейшим действиям. По умолчанию, запрос повторяется три раза.
rsize=n — максимальное количество байт в каждом сетевом запросе на чтение, которое NFS-клиент может получить когда читает из файла на NFS-сервере. Должно быть кратно 1024. Если параметр не указан, то используется максимальное значение поддерживаемое клиентом и сервером.
wsize=n — максимальное количество байт в каждом сетевом запросе на запись. Условия работы те же, что и для rsize.
ac/noac — определяет будет или нет использоваться кеширование атрибутов файлов. Если ни одна опция не будет установлена (или будет установлена опция ac), то клиент будет кешировать атрибуты файлов.
bg/fg — определяет то, каким образом поведет себя утилита mount если попытка смонтировать nfs-экспорт не удастся. fg (по умолчанию) заставляет mount выйти с ошибкой, а bg заставляет mount в случае таймаута создавать потомка и продолжать попытки смонтировать в то время как родительский процесс будет закрыт.
sharecache/nosharecache — определяет использовать ли один кеш данных в случае если монтируется одна и та же экспортируемая директория в несколько точек монтирования. По умолчанию кеш включен.
intr/nointr — выбирает можно ли применять сигналы на прерывание файловых операций на этой точке монтирования. По умолчанию используется nointr. Использовании опции intr предпочтительно при указании опции soft, так как это сильно снижает вероятность порчи данных. В версиях ядра 2.6.25 и выше данные опции не применяются и при их указании будут проигнорированы.

P.S. Одной из причин, почему я взялся за NFS, было желание смотреть фильмы прямо с домашнего сервера. Вначале запустил samba, что, конечно, удобнее, но при просмотре фильмов раз где-то в 8 минут происходило подвисание, которое отвисало еще минуты через 2. Так жить было не возможно и пришлось запустить NFS-сервер. Однако на домашней машине у меня установлен Windows 7 Pro, в котором нет встроенного NFS-клиента. Поэтому пришлось искать сторонние NFS-клиенты под Windows.

Xen Autostart VM

First approach is to set auto_poweron parameter to true at the pool and VM level.

Setting the XenServer to allow Auto-Start
1. Gather the UUID’s of the pools you wish to auto-start.
To get the list of the pool’s on your XenServer type

xe pool-list

2. Copy the UUID of the pool. If you have just one server, it will still have a pool UUID as bellow:
uuid ( RO) : d170d718-e0de-92fc-b920-f4c59cc62e91
name-label ( RW):
name-description ( RW):
master ( RO): 755d4ea3-373b-44b9-8ae3-3cd6f77a7f33
default-SR ( RW): 51218f44-6ac6-4893-98fb-f924b08f7af9
3. Set the pool or server to allow auto-start:

xe pool-param-set uuid=UUID other-config:auto_poweron=true

Note: *Replacing UUID with the UUID of the XenServer or pool.
Setting the Virtual Machines to Auto-Start
1. Gather the UUID’s of the Virtual Machine you want to auto-start by typing:
xe vm-list
Note: This generates a list of Virtual Machines in your pool or server and their associated UUID’s.

2. Copy the UUID of the Virtual Machines you want to auto-start, and type the following command for each Virtual Machine to auto-start:
xe vm-param-set uuid=UUID other-config:auto_poweron=true
Note: *Replace UUID with the UUID of the Virtual Machine to auto-start.*

For this second part (enabling auto-start for the VMs) we can use a little one-line script, which would enable autostart for ALL vms:

for i in `xe vm-list is-control-domain=false –minimal | tr , ‘ ’`; do xe vm-param-set uuid=$i other-config:auto_poweron=true; done
Edit rc.local file to start all vms with «auto_poweron» in their other-config

Add the following lines at the end of /etc/rc.local file:

[ -e /proc/xen ] || exit 0


# wait for xapi to complete initialisation for a max of XAPI_START_TIMEOUT_SECONDS
/opt/xensource/bin/xapi-wait-init-complete ${XAPI_START_TIMEOUT_SECONDS}

if [ $? -eq 0 ]; then

pool=$(xe pool-list params=uuid —minimal 2> /dev/null)

auto_poweron=$(xe pool-param-get uuid=${pool} param-name=other-config param-key=auto_poweron 2> /dev/null)
if [ $? -eq 0 ] && [ «${auto_poweron}» = «true» ]; then
logger «$0 auto_poweron is enabled on the pool— this is an unsupported configuration.»

# if xapi init completed then start vms (best effort, don’t report errors)
xe vm-start other-config:auto_poweron=true power-state=halted —multiple >/dev/null 2>/dev/null || true

Second approach is to use vApp

1. Create vApp
2. Choose vms to vApp
3. Choose boot order and delays between starts
4. To get uuid of vApp use:

xe appliance-list name-label=»name-vapp»
5. Edit rc.local file to start vApp:

echo «sleep 40» >> /etc/rc.local
echo «xe appliance-start uuid=uuid-vapp» >> /etc/rc.local

7. Save file, reboot XenServer

Tkns, http://sysadmin.compxtreme.ro/autostart-vm-in-free-version-of-xenserver-6-x/

Xen 6.5

Проброс PCie:

Делаем xe vm-list и находим uuid нашей виртуалки, у меня uuid=d103a91d-5c38-844f-14d5-64b3c495eb08
Выполняем команду lspci и находим в выводе нашу карту, например 02:00.0 VGA compatible …, 02:00.1 Audio… (двойка удивительным образом соответствует номеру слота, куда воткнута карта).
Записываем однострочный скрипт вида
xe vm-param-set other-config:pci=0/0000:02:00.0,0/0000:02:00.1 uuid=d103a91d-5c38-844f-14d5-64b3c495eb08

В итоге проброс локального видеонаблюдения devline из двух карт:
xe vm-param-set other-config:pci=0/0000:05:00.0,0/0000:06:00.0 uuid=85842063-12b5-ca59-60d7-fe2e7e55980

XenConvert & Xen Center — Windows

Xo — Xen Orchestra
admin@admin.net — admin

OpenXenManager — Linux

Vt-d Xen

Управление локальными хранилищами:
Вообще все жесткие по умолчанию можно сложить в LVM и из него брать место


Скрипт на буржуйском «заменяет нормальный на бразильский бекграунд /usr/share/splash/background.png», но все шуршит Xen 6.5:
Можно сразу забрать: wget http://office.edeg.com.br/reserved/xen/xen-6.5.x-mdadm_raid1.sh

после sh ./xen-6.5.x-mdadm_raid1.sh part1

После перезагружаемся и на загрузку в биосе ставим второй hdd

после sh ./xen-6.5.x-mdadm_raid1.sh part2


Plugins — Распаковать в XenCenter:

Создадим Local Storage
# xe sr-create content-type=user type=lvm device-config:device=/dev/md2 shared=false name-label=»Local storage»

Обновление системы на RAID1:

Создание локального стораджа через NFS нужно для HA POOL.

Vt-d ga-p55-usb3 rev 1.0

ga-p55-usb3 F10c

БИОС для Gigabyte GA-P55USB3 rev 1.0 F10c с поддержкой vt-d = IOMMU для Proxmox 3.10 kernel с подгрузкой PciExpress в виртуалки.


Прошивал через Qflash с fat32.

The VT-d support is optional and require a BIOS modification. The attached special edition of the F10c BIOS will support VT-d. After you have update the BIOS, please do like this to enable VT-d:

1. Under BIOS utility setup/ press “CTRL + F1” to show hidden option.
2. Upon pressing CTRL + F1 , there will be Advanced Chipset Feature option show.
3. Under Advance Chipset Feature, you will see the VT-d option.

Best regards

Asterisk + Huawei e1550