1) compile tws driver:
unzip them.
cd to fresly unpacked source code folder
Then copy the *.c and *.h files to /sys/dev/tws
Copy the Makefile to /sys/modules/tws
Build the tws.ko module:
cd /sys/modules/tws
make
The tws.ko module is created in /sys/modules/tws
2) Load driver:
kldload /sys/modules/tws/tws.ko
3) For autoload driver during system boot:
3a. copy tws.ko into the boot folder and add it to loader:
cp /sys/modules/tws/tws.ko /boot/kernel/tws.ko''
3b. add the line tws_load=“YES”
to the file /boot/loader.conf
echo 'tws_load="YES"' >> /boot/loader.conf
4) device /dev/tws0 does not works, so try to use da0 device instead:
gpart create -s GPT /dev/da0
gpart add -t freebsd-ufs /dev/da0
newfs /dev/da0p1
5) To install CLI management software, see page 37 of manual UsrGuide_Addendum_9750_10.1codeset.pdf:
a. download package (using lynx or links):
lynx http://www.lsi.ru.com/DistributionSystem/User/AssetMgr.aspx?asset=55136
b. unzip it
c. make file execuabe
zfsadmin.pdf
Это, конечно, здорово, что поддержка ZFS ныне включена дерево исходников, но что теперь с ней делать? Ниже вы найдете некоторые инструкции, как быстро подключить и запустить ее.
Прежде всего, вам потребуются некоторые диски. Предполим, что у вас имеется три запасных диска SCSI: da0, da1, da2.
Добавьте к вашему /etc/rc.conf строку, zfs_enable=“YES”
чтобы запускать ZFS автоматически при начальной загрузке:
echo 'zfs_enable="YES"' >> /etc/rc.conf
Теперь установите один пул, использующий RAIDZ:
zpool create tank raidz da0 da1 da2
Это должно автоматически смонтировать вам /tank/.
Хорошо, теперь мы хотим поместить каталог /usr/ на ZFS и использовать ее изящество в размещении файловых систем. Я знаю, что у вас, вероятно, там уже имеются некоторые файлы, так что мы будем работать с каталогом /tank/usr и только когда все будет готово, мы изменим его точку монтирования на /usr.
zfs create tank/usr
Создаем (внутри /usr) файловую систему ports/ и разрешите gzip-компрессию на ней, поскольку в ней имеются только текстовые файлы. С другой стороны, мы не хотим компрессировать содержимое ports/distfiles/, потому что большинство файлов в этом каталоге уже сжато (поэтому выделяем его в отдельную файловую систему):
zfs create tank/usr/ports
zfs set compression=gzip tank/usr/ports
zfs create tank/usr/ports/distfiles
zfs set compression=off tank/usr/ports/distfiles
Вы действительно видите, как ваша жизнь изменяется, не так ли ?
.
Давайте создаим файловую систему для домашних каталогов пользователей и мою собственную файловую систему - home/pjd/. Я помню, что мы используем RAIDZ, но в свой каталог я помещаю чрезвычайно важный материал. Поэтому я устанавливаю, что каждый ее блок должен быть сохранен в трех копиях:
zfs create tank/usr/home
zfs create tank/usr/home/pjd
zfs create tank/usr/home/pjd/important
zfs set copies=3 tank/usr/home/pjd/important
Я хотел бы иметь каталог с музыкой и тому подобным контентом, который можно было бы сделать доступным по сети чере NFS. Я не очень вознуюсь за сохранность этого контента, и мой компьютер не очень быстр, так что я только выключу вычисление контрольной суммы. Это - только пример такой возможности! Пожалуйста, измерьте быстродействие перед тем, как это делать, потому что возможно, что в вашем случае это ничего не даст (и ненужно):
zfs create tank/music
zfs set checksum=off tank/music
zfs set sharenfs=on tank/music
О, я совсем забыл. Кому нынче нужно обновление времени доступа к файлам?
zfs set atime=off tank
Да, мы устанавливаем это для всей файловой системы tank, и этот атрибут будет автоматически унаследован вложенными в нее файловыми системами.
Было бы также хорошо получать информацию, все ли в порядке с нашим пулом:
echo 'daily_status_zfs_enable="YES"' >> /etc/periodic.conf
Возможно, по некоторым причинам вы все еще нуждаетесь в файловой системе UFS, например если вы используете ACLs или расширенные атрибуты файлов, которые пока не поддерживаются файловой системой ZFS. Если так, почему не только используют ZFS, чтобы обеспечить память? Вот способ, которым можно получить снапшоты UFS, клоны UFS, и т.д., просто используя ZVOLs.
zfs create -V 10g tank/ufs
newfs /dev/zvol/tank/ufs
mount /dev/zvol/tank/ufs /ufs
zfs snapshot tank/ufs@20070406
mount -r /dev/zvol/tank/ufs@20070406 /ufs20070406
zfs clone tank/ufs@20070406 tank/ufsok
fsck_ffs -p /dev/zvol/tank/ufsok
mount /dev/zvol/tank/ufsok /ufsok
Хотите применить шифрование swap-раздела и, тем не менее, использовать ZFS? Нет ничего проще, однако:
ПРЕДУПРЕЖДЕНИЕ: То, как реализована ZFS в настоящее время (точно так же, как в Solaris), она не может работать при небольших объемах памяти. То есть в настоящее время вы действительно нуждаетесь в пространстве подкачки. См. http://lists.freebsd.org/pipermail/freebsd-current/2007-September/076831.html для получения более подробных сведений.
zfs create -V 4g tank/swap
geli onetime -s 4096 /dev/zvol/tank/swap
swapon /dev/zvol/tank/swap.eli
Пытаетесь сделать кое-что рискованное с вашим домашним каталогом? Сначала сделайте его снапшот!
zfs snapshot tank/home/pjd@justincase
Оказывается, что это было скорее ненужно, чем опасно? Возвращаемся обратно к снапшоту!
zfs rollback tank/home/pjd@justincase
zfs destroy tank/home/pjd@justincase
Отлично, все работает, так что мы можем смонтировать tank/usr как наш реальный каталог /usr:
zfs set mountpoint=/usr tank/usr
If we want to create raidz volume on freenas from disks of different sizes, we need to:
create any pool (or some of pools) with desired zraid name for one of them (for example, ZFS) of any type (for example, RAID0), containing all available drives using Volume manager (this will create default mount point for this pool, swap partitions on every disk, gpt partition map on every drive, and gpt partitions for use in raidz);
destroy this pool via command line using command
zpool destroy ZFS
the partitions /dev/gptid/69217d70-7632-11e3-b2c9-001517e60f0a and other in folder /dev/gptid will be automatically saved.
Create raidz (or raidz2) using the following command:
zpool create -f -m /mnt/ZFS ZFS raidz gptid/69217d70-7632-11e3-b2c9-001517e60f0a gptid/699bb0cc-7632-11e3-b2c9-001517e60f0a gptid/6a00ba6a-7632-11e3-b2c9-001517e60f0a
where:
-f - force flag, which is needed in case of our drives has different size;
-m /mnt/ZFS - is the mount point, which had been created on step 1;
ZFS - pool name;
raidz (or raidz2) - redundancy scheme for zpool;
gptid/UUID - gpt uuids for partitions created on step 1