Установка Rsync на Solaris 10

Забираем исходники rsync с офсайта, распаковываем, компилим и ставим.
# wget http://samba.anu.edu.au/ftp/rsync/rsync-3.0.7.tar.gz
# gunzip rsync-3.0.7.tar.gz
# tar -xvf rsync-3.0.7.tar
# cd rsync-3.0.7
# ./configure
# make
# sudo make install

Проверяем как все прошло
# which rsync
/usr/local/bin/rsync

# ldd /usr/local/bin/rsync
libpopt.so.0 =>  /opt/csw/lib/libpopt.so.0
libsec.so.1 =>   /lib/libsec.so.1
libiconv.so.2 =>         /opt/csw/lib/libiconv.so.2
libsocket.so.1 =>        /lib/libsocket.so.1
libnsl.so.1 =>   /lib/libnsl.so.1
libc.so.1 =>     /lib/libc.so.1
libsunmath.so.1 =>       /opt/csw/lib/libsunmath.so.1
libintl.so.8 =>  /opt/csw/lib/libintl.so.8
libm.so.1 =>     /lib/libm.so.1
libavl.so.1 =>   /lib/libavl.so.1
libmp.so.2 =>    /lib/libmp.so.2
libmd.so.1 =>    /lib/libmd.so.1
libscf.so.1 =>   /lib/libscf.so.1
libdl.so.1 =>    /lib/libdl.so.1
libdoor.so.1 =>  /lib/libdoor.so.1
libuutil.so.1 =>         /lib/libuutil.so.1
libgen.so.1 =>   /lib/libgen.so.1
libm.so.2 =>     /lib/libm.so.2

Читать далее «Установка Rsync на Solaris 10»

Сборка модулей CPAN (gcc) под Solaris

Делаем ссылку на рабочий gcc

ln -s /usr/sfw/bin/gcc /usr/ccs/bin/ucbcc

Убираем лишние оптимизации — gcc их не понимает

vim /usr/perl5/5.8.4/lib/i86pc-solaris-64int/Config.pm

diff

164c164
< cccdlflags='-KPIC'
---
> cccdlflags=''
889c889
< optimize='-xO3 -xspace -xildoff'
---
> optimize='-O3'

Отключаем сервисы в Zone

После инсталляции зоны, желательно отключить в ней следущие сервисы:

svcadm disable network/smtp
svcadm disable network/telnet
svcadm disable network/ftp
svcadm disable network/finger
svcadm disable network/login:rlogin
svcadm disable network/shell:default
svcadm disable application/x11/xfs
svcadm disable network/rpc/rstat
svcadm disable network/rpc/rusers
svcadm disable network/rpc/smserver
svcadm disable network/rpc/gss
svcadm disable network/rpc/rquota
svcadm disable network/rpc/cde-calendar-manager
svcadm disable network/rpc/cde-ttdbserver
svcadm disable network/nfs/client
svcadm disable network/nfs/cbd
svcadm disable network/nfs/mapid
svcadm disable network/nfs/status
svcadm disable network/nfs/nlockmgr
svcadm disable network/nfs/rquota
svcadm disable network/stdiscover
svcadm disable network/stlisten
svcadm disable network/cde-spc
svcadm disable network/rpc-100235_1/rpc_ticotsord
svcadm disable network/security/ktkt_warn

Enable SSL for Blastwave Apache2

По умолчанию SSL отключен. Включаем следующим образом.

-bash-3.00# svcprop -p httpd/ssl svc:/network/http:cswapache2 false
-bash-3.00# svccfg -s svc:/network/http:cswapache2 setprop httpd/ssl=true
-bash-3.00# svcadm refresh svc:/network/http:cswapache2
-bash-3.00# svcprop -p httpd/ssl svc:/network/http:cswapache2 true

NTP client

Создаем /etc/inet/ntp.conf

server 0.europe.pool.ntp.org
server 1.europe.pool.ntp.org
server 2.europe.pool.ntp.org
server 3.europe.pool.ntp.org

driftfile /var/ntp/ntp.drift

Запускаем

svcadm enable -sr ntp

Расположение rpool на части диска

Задача установить систему, а именно rpool не на весь диск, а на часть, дабы оставшуюся часть использовать под доп.нужды.

И так, что мы имеем:

Диск #1 - c1t0d0s0
Диск #2 - c1t1d0s0

Что делаем далее…

1. Ставим систему на первый диск на fdisk-партицию ~30гб (размечаем прямо в исталяторе, создаем fdisk-партицию не на весь диск, а только необходимое для системы место)

Чистая fdisk-партиция без разбивки на слайсы выглядит так:

Current partition table (original):
Total disk cylinders available: 60797 + 2 (reserved cylinders)

Part Tag Flag Cylinders Size Blocks
0 unassigned wm 0 0 (0/0/0) 0
1 unassigned wm 0 0 (0/0/0) 0
2 backup wu 0 — 60796 931.46GB (60797/0/0) 1953407610
3 unassigned wm 0 0 (0/0/0) 0
4 unassigned wm 0 0 (0/0/0) 0
5 unassigned wm 0 0 (0/0/0) 0
6 unassigned wm 0 0 (0/0/0) 0
7 unassigned wm 0 0 (0/0/0) 0
8 boot wu 0 — 0 15.69MB (1/0/0) 32130
9 unassigned wm 0 0 (0/0/0) 0

Отрезаем от нее 30гб под s0 (rpool может находиться только на s0). Получаем:

Current partition table (original):
Total disk cylinders available: 60797 + 2 (reserved cylinders)

Part Tag Flag Cylinders Size Blocks
0 root wm 1 — 1821 27.90GB (1821/0/0) 58508730
1 unassigned wm 0 0 (0/0/0) 0
2 backup wu 0 — 60796 931.46GB (60797/0/0) 1953407610
3 unassigned wm 0 0 (0/0/0) 0
4 unassigned wm 0 0 (0/0/0) 0
5 unassigned wm 0 0 (0/0/0) 0
6 unassigned wm 0 0 (0/0/0) 0
7 unassigned wm 0 0 (0/0/0) 0
8 boot wu 0 — 0 15.69MB (1/0/0) 32130
9 unassigned wm 0 0 (0/0/0) 0

2. На втором диске делаем fdisk-партицию на весь диск и в нем s0 аналогичный первому диску и s1 на все оставшееся место (потом это будет часть пула для базы или еще чего полезного).

Current partition table (original):
Total disk cylinders available: 60797 + 2 (reserved cylinders)

Part Tag Flag Cylinders Size Blocks
0 root wm 1 — 1821 27.90GB (1821/0/0) 58508730
1 usr wm 1822 — 60796 903.54GB (58975/0/0) 1894866750
2 backup wu 0 — 60796 931.46GB (60797/0/0) 1953407610
3 unassigned wm 0 0 (0/0/0) 0
4 unassigned wm 0 0 (0/0/0) 0
5 unassigned wm 0 0 (0/0/0) 0
6 unassigned wm 0 0 (0/0/0) 0
7 unassigned wm 0 0 (0/0/0) 0
8 boot wu 0 — 0 15.69MB (1/0/0) 32130
9 unassigned wm 0 0 (0/0/0) 0

3. Подключаем s0 второго диска как зеркало к rpool и ждем полной синхронизации

zpool attach rpool c1t0d0s0 c1t1d0s0

4. С помощью скрипта или ручками проставляем grub на новый диск (все половинки зеркала должны иметь grub для возможности дальнейшей загрузки с любой из них)

5. Отключаем первый диск от rpool и пробуем загрузиться со второго диска. Если Вы не забыли проставить grub на второй диск, то система загрузится.

6. Разбиваем первый диск так же как и второй диск

#zpool detach rpool c1t0d0s0

# format
Searching for disks…done

AVAILABLE DISK SELECTIONS:
0. c1t0d0
/[email protected],0/pci15d9,[email protected],2/[email protected],0
1. c1t1d0
/[email protected],0/pci15d9,[email protected],2/[email protected],0
Specify disk (enter its number): 0
selecting c1t0d0
[disk formatted]

FORMAT MENU:
disk — select a disk
type — select (define) a disk type
partition — select (define) a partition table
current — describe the current disk
format — format and analyze the disk
fdisk — run the fdisk program
repair — repair a defective sector
label — write label to the disk
analyze — surface analysis
defect — defect list management
backup — search for backup labels
verify — read and display labels
save — save new disk/partition definitions
inquiry — show vendor, product and revision
volname — set 8-character volume name
! — execute , then return
quit
format> fdisk
Total disk size is 60800 cylinders
Cylinder size is 32130 (512 byte) blocks

Cylinders
Partition Status Type Start End Length %
========= ====== ============ ===== === ====== ===
1 Active Solaris2 1 60799 60799 100

SELECT ONE OF THE FOLLOWING:
1. Create a partition
2. Specify the active partition
3. Delete a partition
4. Change between Solaris and Solaris2 Partition IDs
5. Exit (update disk configuration and exit)
6. Cancel (exit without updating disk configuration)
Enter Selection: 6

format> p

PARTITION MENU:
0 — change `0′ partition
1 — change `1′ partition
2 — change `2′ partition
3 — change `3′ partition
4 — change `4′ partition
5 — change `5′ partition
6 — change `6′ partition
7 — change `7′ partition
select — select a predefined table
modify — modify a predefined partition table
name — name the current table
print — display the current table
label — write partition map and label to the disk
! — execute , then return
quit
partition> p
Current partition table (original):
Total disk cylinders available: 60797 + 2 (reserved cylinders)

Part Tag Flag Cylinders Size Blocks
0 root wm 1 — 1821 27.90GB (1821/0/0) 58508730
1 usr wm 1822 — 60796 903.54GB (58975/0/0) 1894866750
2 backup wu 0 — 60796 931.46GB (60797/0/0) 1953407610
3 unassigned wm 0 0 (0/0/0) 0
4 unassigned wm 0 0 (0/0/0) 0
5 unassigned wm 0 0 (0/0/0) 0
6 unassigned wm 0 0 (0/0/0) 0
7 unassigned wm 0 0 (0/0/0) 0
8 boot wu 0 — 0 15.69MB (1/0/0) 32130
9 unassigned wm 0 0 (0/0/0) 0

partition> q

FORMAT MENU:
disk — select a disk
type — select (define) a disk type
partition — select (define) a partition table
current — describe the current disk
format — format and analyze the disk
fdisk — run the fdisk program
repair — repair a defective sector
label — write label to the disk
analyze — surface analysis
defect — defect list management
backup — search for backup labels
verify — read and display labels
save — save new disk/partition definitions
inquiry — show vendor, product and revision
volname — set 8-character volume name
! — execute , then return
quit
format> q

Не забываем после разбивки партишенов их сохранить с помощью label!

7. Подключаем s0 первого диска как зеркало к rpool и ждем полной синхронизации и ставим grub

zpool attach rpool c1t1d0s0 c1t0d0s0

8. Смотрим что получилось

# zpool status
pool: rpool
state: ONLINE
scrub: none requested
config:

NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
mirror ONLINE 0 0 0
c1t1d0s0 ONLINE 0 0 0
c1t0d0s0 ONLINE 0 0 0

errors: No known data errors

В итоге мы имеем первые два диска с одной fdisk-партицией на весь диск, на которой есть s0 для rpool + s1 для базы.

9. Теперь можно оставшиеся слайсы s1 обоих дисков включить в какой нибудь новый пул. К примеру я добавил еще два диска и сделал двойное зеркало.

# zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
rpool 27,8G 2,68G 25,1G 9% ONLINE -
tank 1,78T 97K 1,78T 0% ONLINE -

# zpool status
pool: rpool
state: ONLINE
scrub: none requested
config:

NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
mirror ONLINE 0 0 0
c1t1d0s0 ONLINE 0 0 0
c1t0d0s0 ONLINE 0 0 0

errors: No known data errors

pool: tank
state: ONLINE
scrub: none requested
config:

NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
mirror ONLINE 0 0 0
c1t2d0s1 ONLINE 0 0 0
c1t3d0s1 ONLINE 0 0 0
mirror ONLINE 0 0 0
c1t0d0s1 ONLINE 0 0 0
c1t1d0s1 ONLINE 0 0 0

errors: No known data errors

Поднимаем NFS на Solaris 10

1. Включаем NFS сервер:

svcadm -v enable -r network/nfs/server

2. Расшариваем шару через NFS

share -F nfs -o rw /disk

Шара будет активна только до перезагрузки. Чтобы после перезагрузки шара автоматом шарилась, надо добавить в /etc/dfs/dfstab

share -F nfs -o rw /disk

3. На клиенте для подключения к нашей NFS шаре:

mount -F nfs server:/disk /mount_point

Шара будет подключена только до перезагрузки. Чтобы после перезагрузки шара автоматом цеплялась, надо добавить в /etc/vfstab:

server:/disk - /mount_point nfs - yes rw,soft

Монтирование CD привода

Если запущен vold, операционная система автоматиески смонтирует вставленный CD/DVD. Если vold не установлен, либо не запущен, либо не работает по любой причине, можно смотнировать диск вручную:

1. Идентифицируем устройство чтения CD/DVD:

$ iostat -En
c0t0d0 Soft Errors: 9 Hard Errors: 0 Transport Errors: 0
Vendor: TOSHIBA Product: DVD-ROM SD-C2612 Revision: 1011 Serial No:
Size: 2.14GB
Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0

2. Убедимся, что vold не запущен:

# pgrep vold && pkill vold

Если вы попытаетесь смонтировать CD/DVD вручную при запущенном vold, скорее всего вы получите следующую ошибку:

mount: /dev/dsk/c0t0d0s2 is already mounted, /cdrom is busy,
or allowable number of mount points exceeded

3. Создаём точку монтирования:

# [ ! -d /cdrom ] && mkdir /cdrom

4. Собственно монтируем CD/DVD:

# mount -F hsfs -o ro /dev/dsk/c0t0d0s2 /cdrom

Если вы зададите неправильный тип файловой системы, вы скорее всего получите следующую ошибку:

mount: /dev/dsk/c0t0d0s2 is not this fstype.

Если вы попытаетесь смонтировать привод в режиме r/w, вы получите следующую ошибку:

mount: /dev/dsk/c0t0d0s2 write-protected