Coder Social home page Coder Social logo

zfs's Introduction

В ДЗ не предоставлен vagrantfile. Создаем свой. Centos 7. +2 SATA диска.

Проверяем наличие дисков и заводим ZFS

sudo -s
lsblk

Видим диски

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 39G 0 part
├─VolGroup00-LogVol00 253:0 0 37.5G 0 lvm /
└─VolGroup00-LogVol01 253:1 0 1.5G 0 lvm [SWAP]
sdb 8:16 0 1G 0 disk
sdc 8:32 0 1G 0 disk

Заводим ZFS

yum install yum-utils -y
yum install -y http://download.zfsonlinux.org/epel/zfs-release.el7_9.noarch.rpm
yum-config-manager --disable zfs
yum-config-manager --enable zfs-kmod
yum install zfs -y
modprobe zfs

Определить алгоритм с наилучшим сжатием создать 4 файловых системы на каждой применить свой алгоритм сжатия 1.1 Создаем pool

zpool create pool0 mirror /dev/sdb /dev/sdc

1.2 Создаем ФС со сжатием gzip, zle lzjb, lz4

zfs create -o compression=gzip pool0/gzip
zfs create -o compression=lz4 pool0/lz4
zfs create -o compression=lzjb pool0/lzjb
zfs create -o compression=zle pool0/zle

скачать файл ядра распаковать и расположить на файловой системе

ставим wget, качаем kernel и смотрим исходное состояние

yum install wget -y
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.9.13.tar.xz
zfs list

Видим

NAME USED AVAIL REFER MOUNTPOINT
pool0 217K 3.62G 28K /pool0
pool0/gzip 24K 3.62G 24K /pool0/gzip
pool0/lz4 24K 3.62G 24K /pool0/lz4
pool0/lzjb 24K 3.62G 24K /pool0/lzjb
pool0/zle 24K 3.62G 24K /pool0/zle

Распаковываем ядро в каждую из ФС

tar -C /pool0/gzip -xvf linux-5.9.13.tar.xz
tar -C /pool0/lz4 -xvf linux-5.9.13.tar.xz
tar -C /pool0/lzjb -xvf linux-5.9.13.tar.xz
tar -C /pool0/zle -xvf linux-5.9.13.tar.xz

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

zfs list
NAME USED AVAIL REFER MOUNTPOINT
pool0 1.98G 1.64G 28K /pool0
pool0/gzip 253M 1.64G 253M /pool0/gzip
pool0/lz4 380M 1.64G 380M /pool0/lz4
pool0/lzjb 436M 1.64G 436M /pool0/lzjb
pool0/zle 962M 1.64G 962M /pool0/zle

Алгоритм с наилучшим сжатием - gzip

Определить настройки pool’a Загрузить архив с файлами локально.

wget --no-check-certificate -O zfs_task1.tar 'https://drive.google.com/u/0/uc?id=1KRBNW33QWqbvbVHa3hLJivOAt60yukkg&export=download'

2.2 Распаковать

tar xf zfs_task1.tar.gz

2.3 С помощью команды zfs import собрать pool ZFS.

zpool import -d /home/vagrant/zpoolexport/
pool: otus
 id: 6554193320433390805
state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:
    otus                                 ONLINE
          mirror-0                           ONLINE
             /home/vagrant/zpoolexport/filea  ONLINE
             /home/vagrant/zpoolexport/fileb  ONLINE
zpool list
NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
pool0 3.75G 1.98G 1.77G - - 0% 52% 1.00x ONLINE -

Не сработало. Импортируем как read only.

zpool import otus -o readonly=on -d /home/vagrant/zpoolexport/
zpool list
NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
otus 480M 2.11M 478M - - 0% 0% 1.00x ONLINE -
pool0 3.75G 1.98G 1.77G - - 0% 52% 1.00x ONLINE -

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

zpool list
zpool status otus

Остальное забираем отсюда

zfs get all otus
NAME PROPERTY VALUE SOURCE
otus recordsize 128K local
otus checksum sha256 local
otus compression zle local

размер хранилища - 480М тип pool - mirror значение recordsize - 128K какое сжатие используется - zle какая контрольная сумма используется - sha256

Найти сообщение от преподавателей 3.1 Скопировать файл из удаленной директории.

wget --no-check-certificate -O otus_task2.file 'https://drive.google.com/file/d/1gH8gCL9y7Nd5Ti3IRmplZPF1XjzxeRAG/view?usp=sharing'

3.2 Восстановить его локально.

zfs receive pool0/gzip/task2 < otus_task2.file

3.3 Найти зашифрованное сообщение в файле secret_message

find /pool0/gzip/task2/ -name secret_message
/pool0/gzip/task2/task1/file_mess/secret_message
cat /pool0/gzip/task2/task1/file_mess/secret_message

zfs's People

Contributors

r2dxt avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.