26 ноября 2013 г.

Клонирование FreeBSD ZFS root

Клонирование FreeBSD ZFS root

При миграции сервера FreeBSD 8.2, c корневым разделом на ZFS в VMWare esxi, новый сервер не загружался. Процесс загрузки останавливался на сообщении "unsupported zfs version 28 (should be 15)".
Исходный сервер имел версию ФС 4, пула - 15. LiveCD mfsbsd создавал ФС - версию 5 и пул версии 28.
При создании пула требуется явно указать требуемые версии рабочего пула. В остальном всё скопировано из первоисточника http://www.aisecure.net/2011/03/26/cloning-a-zfs-bootable-system/

Качаем образ mfsbsd http://mfsbsd.vx.sk/ и загружаем с него него целевой сервер.
Настраиваем сетевой интерфейс.

mfsbsd#gpart create -s gpt da0
mfsbsd#gpart add -b 34 -s 64k -t freebsd-boot da0
mfsbsd#gpart add -t freebsd-zfs -l disk0 ad0
mfsbsd#gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 da0
mfsbsd#zpool create -o version=15 -O version=4 -R /a -m legacy zroot /dev/gpt/disk0
mfsbsd#zpool set bootfs=zroot zroot

Делаем актуальный снимок файловой системы на исходном сервере и копируем его.
zfs snapshot -r zroot@bck 
zfs send -R zroot@bck | ssh root@10.10.10.141 zfs recv -Fdv zroot
Монтируем разделы и  перезагружаем новый сервер.
mfsbsd#zfs destroy -r zroot@bck
mfsbsd#zfs set mountpoint=/zroot zroot
mfsbsd#zpool export -f zroot
mfsbsd#zpool import -f zroot
mfsbsd#cp /boot/zfs/zpool.cache /zroot/boot/zfs/zpool.cache
mfsbsd#zfs umount -a
mfsbsd#zfs set mountpoint=legacy zroot
mfsbsd#zfs set mountpoint=/tmp zroot/tmp
mfsbsd#zfs set mountpoint=/usr zroot/usr
mfsbsd#zfs set mountpoint=/var zroot/var

mfsbsd#reboot

20 мая 2013 г.

FreeBSD pxeboot nfs

Для установки FreeBSD по сети необходимо настроить:

- NFS
- DHCP
- TFTP

/etc/rc.conf


dhcpd_enable="YES"
nfs_server_enable="YES"
rpcbind_enable="YES"

inetd_enable="YES"

1. NFS - сервер

В /etc/exports добавляем

/usr/local/netboot -alldirs -maproot=root


2. DHCP - сервер

/usr/local/etc/dhcpd.conf

default-lease-time 600;
max-lease-time 7200;
authoritative;
local-address 192.168.1.100;

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.150 192.168.1.200;
        option routers 192.168.1.100;
        next-server 192.168.1.100;
        option domain-name-servers 192.168.1.1, 8.8.8.8;
        option root-path "/usr/local/netboot";
        filename "pxeboot";
}


3. TFTP - сервер

В  /etc/inetd.conf добавляем строчку

tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /usr/local/netboot/boot

Запускаем сервисы:

/usr/local/etc/rc.d/isc-dhcpd start
/etc/rc.d/rpcbind start
/etc/rc.d/nfsd start
/etc/rc.d/inetd start

Монтируем установочный образ и копируем его содержимое:

mdconfig -a -f FreeBSD.iso
mount_cd9660 /dev/md0 /mnt/
cp -Rp /mnt/ /usr/local/netboot/

Добваляем строчку vfs.root.mountfrom="ufs:/dev/md0" в /usr/local/netboot/boot/loader.conf

Комментируем строку /dev/iso9660/FREEBSD_INSTALL / cd9660 ro 0 0 в /usr/local/netboot/etc/fstab


31 марта 2013 г.

SCP через SSH тоннель

Скопировать файлы через третий сервер можно через SSH тоннель.

1. ssh -f -N -L2222:ip-target-host:22  login@ip-proxy-host

Пробрасываем локальный порт 2222 на порт 22 целевого хоста через промежуточный сервер.

2. scp -C -r -P 2222 dir login-target-host@127.0.0.1:/path-to-remote-dir

Копируем каталог на удаленный сервер.


24 марта 2013 г.

Увеличение диска VMWare для Linux

1. делаем снапшот

2. увеличиваем размер диска в средствами wmware

3. fdisk /dev/sda

- удаляем LVM раздел
- создем увеличенный раздел и помечаем его как LVM (8e)
- сохраняем изменения и перезагрузжаем ОС

4. vgdisplay - смотрим текущий размер тома 

5. pvresize /dev/sdb2 - увеличиваем физический том 

6. vgdisplay - смотрим текущий размер тома

7. lvextend -L+5G /dev/mapper/vg_srv-lv_root - увеличиваем логический том

8. resize2fs /dev/mapper/vg_srv-lv_root - увеличиваем размер ФС

9. df -h


19 марта 2013 г.

MySQL

Импорт только одной таблицы из дампа базы


awk '/CREATE TABLE `table_name`/,/UNLOCK TABLES/' db_dump.sql

24 января 2013 г.

Solaris grep

grep n lines Solaris

nawk '$0~s{for(c=NR-b;c<=NR+a;c++)r[c]=1}{q[NR]=$0}END{for(c=1;c<=NR;c++)if(r[c])print q[c]}' b=1 a=1 s="text" file.txt



лабораторные электронные весы 0.01г / 500 г высокого класса точности для определения массы образцов в лабораториях, производствах. Лабораторные весы предназначены для точного измерения массы, подсчета однородных предметов. Лабораторные электронные весы серии ВМ-II, со встроенной юстировочной гирей, обеспечивают точность измерений независимо от изменений внешних условий.