Кластер на основе Xen, DRBD и Heartbeat в Gentoo

Материал из Xgu.ru

Перейти к: навигация, поиск
stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.

Короткий URL: xen/drbd/gentoo

Автор: Юрий Шабанов, sjm-m () ya.ru


Я немного проработал, это моя версия этой идей

Замысел был такой, сделать кластер High-Availability, на PC с минимальными затратами. Это однозначно связка DRBD Heartbeat. Есть много статей как это делается притом для каждого сервиса своя. Если пойти путем поднятия каждого сервиса отдельно, настраивать, проверять, где должны находится файлы, доступ к ним, можно запутаться сделать ошибку. Мне показалось это не очень удобно. Не проще ли запустить виртуальную машину и её прикрутить к High-Availability. И пусть она уже "прыгает" с нода на нод, со всеми своими сервисами.

Повозившись с виртуальными машинами, я выбрал Xen (не буду перчислять почему выбрал и все)

Машины для нодов: 
Желательно три диска SATA или IDE , на один  для система Node два других для виртуальных машин, но можно 
обойтись и двумя и одним, немного подумать над тем как распределить партиции,

Желательно две сетевые карты, и чтобы хоть одна из них была гигабитная, тогда синхронизация DRBD, будет веселой, и не будет мешать работе виртуальных машин. Но можно обойтись и одной. Я, буду рассказывать на том железе которое у меня под рукой Один SATA /dev/sda, две сетевые одна гигабитная (eth0) вторая 100 (eth1)

Этапы установки, последовательность необходимо соблюдать!!

1.	Если используешь один жесткий диск надо сразу предусмотреть разметку 
/dev/XdX1*  83  Linux /boot  (32м)				“NodeX или по правилам  Xen domain0”  
/dev/XdX2   82  Linux swap / Solaris (ОЗУ*2)			“NodeX или по правилам  Xen domain0”  
/dev/XdX3   83  Linux (приб 4 Гб этого достаточно)	 	“NodeX или по правилам   Xen domain0”   
/dev/XdX4   f  W95 Ext'd (LBA)
/dev/XdX5   82  Linux swap / Solaris				“XenU первой виртуальной машины «
/dev/XdX6   82  Linux swap / Solaris				“XenU второй  виртуальной машины «
/dev/XdX7   83  Linux   “/” можно по своему усмотрению разбить “XenU первой виртуальной машины «
/dev/XdaX   83  Linux “/” можно по своему усмотрению разбить 	“XenU второй виртуальной машины «
2.	Установить gentoo по инструкции Настольная книга Gentoo Linux x86 используя первых три раздела 
Мой make.conf для примера 
# These settings were set by the catalyst build script that automatically built this stage
# Please consult /etc/make.conf.example for a more detailed example
CFLAGS="-O2 -mcpu=pentium4  -pipe -mno-tls-direct-seg-refs"
USE="-X -kde -gnome userlocales -xorg -alsa -cups -berkdb sdl –unicode  pae  "
CHOST="i686-pc-linux-gnu"
#CHOST="x86_64-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
FEATURES="sandbox ccache distcc distlocks autoaddcvs"
CCACHE_DIR="/root/.ccache"
CCACHE_SIZE="1.5G"
LINGUAS="ru en"
MAKEOPTS="-j2"
GENTOO_MIRRORS=" ftp://gentoo.mirrors.tds.net/gentoo"


xen_node1 etc # cat locale.gen
# /etc/locale.gen: list all of the locales you want to have on your system
#
# The format of each line:
# <locale> <charmap>
#
# Where <locale> is a locale located in /usr/share/i18n/locales/ and
# where <charmap> is a charmap located in /usr/share/i18n/charmaps/.
#
# All blank lines and lines starting with # are ignored.
#
# For the default list of supported combinations, see the file:
# /usr/share/i18n/SUPPORTED
#
# Whenever glibc is emerged, the locales listed here will be automatically
# rebuilt for you.  After updating this file, you can simply run `locale-gen`
# yourself instead of re-emerging glibc.
C
POSTIX
en_US.UTF-8 UTF-8
en_US ISO-8859-1
ru_RU.KOI8-R KOI8-R
ru_RU.UTF-8 UTF-8
ru_RU ISO-8859-5
3.	Собрать все пакет emerge –system && emerge -evat world 
4.	установить дополнительно пакты 
net-misc/openssh
sys-apps/hwdata-gentoo	 можно не ставить 
app-admin/eselect		можно не ставить
sys-apps/hwsetup		 можно не ставить
app-portage/gentoolkit		можно не ставить
sys-apps/xinetd
dev-util/ccache			можно не ставить
sys-boot/grub
app-admin/syslog-ng
sys-fs/reiserfsprogs
5.	сделаем strag4 с помощью скрипта [1]

В директории /mnt/backups/stage4 создастся

Rescue-stage4-16.05~7-minimal.tar.bz2 

6. Установить Xen по инструкции [2]


/etc/portage/package.keywords app-emulation/xen app-emulation/xen-tools sys-kernel/xen-sources emerge -av app-emulation/xen app-emulation/xen-tools

make menuconfig


Linux Kernel Configuration: Xen kernel config (Domain 0) Processor type and features --->

 [*] Enable Xen compatible kernel

High Memory Support (64GB) ---> этим отличается от статьи

XEN --->

 [*] Privileged Guest (domain 0)
 < > PCI device backend driver
 <*> Block-device backend driver
 < >   Block Tap support for backend driver (DANGEROUS)
 <*> Network-device backend driver
 [ ]   Pipelined transmitter (DANGEROUS)
 <*>   Network-device loopback driver
 < > TPM-device backend driver
 < > Block-device frontend driver
 < > Network-device frontend driver
 < > Block device tap driver
 < > TPM-device frontend driver
 [*] Scrub memory before freeing it to Xen
 [ ] Disable serial port drivers
 <*> Export Xen attributes in sysfs

Networking --->

 Networking options --->
   [*] IP: tunneling
   [*] 802.1d Ethernet Bridging

Device Drivers --->

 Block devices  --->
   <*> Loopback device support

7. правим /etc/conf.d/net

# This blank configuration will automatically use DHCP for any net.*
# scripts in /etc/init.d.  To create a more complete configuration,
# please review /etc/conf.d/net.example and save your configuration
# in /etc/conf.d/net (this file :]!).
config_eth0=(  
        "10.0.0.1/24" )		#
routes_eth0=(                          # интерфейс DRBD
	 "default via 10.0.0.1")        #
config_eth1=(				#
   "10.7.40.67/24" ) 			# Интерфейс Сервера (нода )
routes_eth1=(				#
           "default via 10.7.40.254")	#

Незбываем исправить /etc/conf.d/rc

RC_PLUG_SERVICES="!net.*"

Исправляем /etc/init.d/xend

  need net      #Было 
  need net.eth1 #Стало (привязываем к eth1)

xen_node1 # rc-update add xend default xen_node1 # rc-update add xinetd default

Устанавливает Grub

перезагружаемся с поддержкой Xen.
Необходимо убедится, чтоб поднялся Dom0.

xen_node1 / # xm list

Name ID Mem VCPUs State Time(s) Domain-0 0 98 2 r----- 745.8


8. Устанавливаем DRBD

xen_node1 ~ # emerge -av drbd

xen_node1 ~ # cat /etc/drbd.conf |grep -v ^#

resource drbd0 {
    protocol C;

disk {
   on-io-error   pass_on;
     }
syncer {
       rate 500M;
       group 0;
       al-extents 997;
       }

on xen_node1 {
   device    /dev/drbd0;
   disk      /dev/sda7;
   address   10.0.0.1:7788;# здесь изменён порт 
   meta-disk  internal;
   }

on xen_node2 {
   device    /dev/drbd0;
   disk      /dev/sda7;
   address   10.0.0.2:7788;# здесь изменён порт 
   meta-disk  internal;
   }
}
resource drbd1 {
    protocol C;

disk {

   on-io-error   pass_on;
     }
syncer {
       rate 500M;
       group 1;
       al-extents 997;
       }

on xen_node1 {
   device    /dev/drbd1;
   disk      /dev/sda8;
   address   10.0.0.1:7789;
   meta-disk  internal;
   }

on xen_node2 {
   device    /dev/drbd1;
   disk      /dev/sda8;
   address   10.0.0.2:7789;
   meta-disk  internal;
   }
}


Примечание : Если вы пересобрали ядро Dom0 необходимо или пересобрать drbd или скопировать модуль drbd.ko и для того чтобы зарегистрировать модуль запускаем или заранее делаем бинарник quickpkg drbd потом быстро ставим.

Делаем исправления в /etc/init.d/drbd

       need  net      #Было 
       need  net.eth0 #Стало (пивязываем к гигабитной карте)

xen_node1 resource.d # /etc/init.d/drbd start

Проверка


xen_node1 / # cat /proc/drbd

version: 0.7.23 (api:79/proto:74) SVN Revision: 2686 build by root@xen_node1, 2007-05-21 13:20:53

0: cs:WFConnection st:Secondary/Unknown ld:Consistent
   ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0
1: cs:WFConnection st:Secondary/Unknown ld:Consistent
   ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0

второй часть он у нас не видит ее нет пока !! Если все прошо успешно

xen_node1 # rc-update add drbd default


9. Устанавливаем Heartbeat

emerge -av heartbeat

Создаем деректорию в  /etc/ha.d/

xen-1 ~ # mkdir /etc/ha.d/ha.xen

в это директории будут хранится конфиги для xenU гостевых машин. у меня они следующие.

Имя файла не имеет значения например virt-srw1 для первой машины и virt-srw2 для второй 

Для первой машины надо исправить в параметры name disk и по аналогии в virt-srw2 xen_node1 ~ # cat /etc/ha.d/ha.xen/virt-srw1 |grep -v ^#

kernel = "/usr/lib/xen/boot/vmlinuz-2.6-xen"

memory = 256

name = "gentoo1" #Имя DomU по нему происходит управление Heartbeat

vif = []

disk = [ 'phy:drbd0,hda3,w', # root DomU gentoo1

       'phy:sda5,hda2,w']   # Swop DomU повниметельней с назначением что-бы не пересеклись  разделы

root = "/dev/hda3 ro"

extra = "4"

vnc=1

vncviewer=0


10. Настройка Heartbeat Добавляем скрипит управления xendomains в директорию

xen_node1 ~ # cat /etc/ha.d/resource.d/xendomains
 #!/bin/bash
XM="/usr/sbin/xm"
CONFPATH="/etc/ha.d/ha.xen"
CONFHA="/etc/ha.d/haresources"
Haresource_drbd="/etc/ha.d/resource.d/drbddisk"
 #PATHLOG="/var/log/ha-log"
 #ems-fs-dom0
RES="$1"
CMD="$2"
CONFIGXM=`grep -Rl $RES $CONFPATH`
RESDRBD=`grep $RES $CONFHA |awk 'BEGIN {FS = ":[ \t]*|[ \t]+"} {print $4}'`

isrunning=false

case "$CMD" in
    start)
            STAT_QUORUM=`drbdadm state $RESDRBD |awk 'BEGIN { FS = "[/]"} {print $1}'`
            n=0
            until [[ ($STAT_QUORUM == "Primary" ||  $n -ge 2) ]]
            do
            sleep 5
            STAT_QUORUM=`drbdadm state $RESDRBD |awk 'BEGIN { FS = "[/]"} {print $1}'`
            echo "$STAT_QUORUM"
            n=`expr $n + 1`
            echo "Resource $RESDRBD ""Secondary"". Test to change the status number $n "
            done
            if [ $STAT_QUORUM == "Secondary" ]
            then
            ha_log "ERROR: Problem DRBD QUORUM status ""Secondary"" busy $1 NO STARTING "
            exit 1
            fi

            $XM create --quiet $CONFIGXM

        ;;
    stop)
      #exec $XM shutdown -w $RES
         $XM shutdown -w $RES
         $Haresource_drbd $RESDRBD stop
        ;;
    status)
        $XM list | awk '{print $1}'  | grep $RES > /dev/null
        if [ $? -eq 0 ]
        then
                echo running
        else
                echo stopped
        fi
        ;;
    *)
        echo "Usage: xendomain [NameDomainU] {start|stop|status}"
        exit 1
        ;;
esac
exit 0

xen_node1 # chmod 755 /etc/ha.d/resource.d/xendomains

Копируем из папки /usr/share/doc/heartbeat-2.0.7 в /etc/ha.d/ файлы authkeys ha.cf haresources В файле authkeys правим auth 3 - убираем комментарии меняем на 3

#1 crc
#2 sha1 HI!

3 md5 Hello! - убираем комментарии вместо «Hello!» можно взять любой фаил сделать md5sum и это цифры сюда записать chmod 600 authkeys

xen_node1 resource.d # cat /etc/ha.d/authkeys |grep -v ^#

auth 3
3 md5 bcd94935594371abdd012e328ceab708 # ваш пароль 


Правим ha.cf

xen_node1 resource.d # cat /etc/ha.d/ha.cf |grep -v ^#

debugfile /var/log/ha-debug logfile /var/log/ha-log logfacility local0 ucast eth0 10.0.0.1 ucast eth0 10.0.0.2 auto_failback off node xen_node1 node xen_node2


Правим haresources имя xen_node1(xen_node2)можно узнать uname –n drbd0 (drbd1) должны совпадать с тем что прописано /etc/ha.d/ha.xen/vrt-srw1(vrt-srw2)

xen_node1 resource.d # cat /etc/ha.d/haresources |grep -v ^# xen_node1 drbddisk::drbd0 xendomains::gentoo1 xen_node2 drbddisk::drbd1 xendomains::gentoo2

все эти файлы абсолютно идентичны на обоих нода поэтому в конфигурацию заноситься информация для обоих


11. Сделаем доступные разделы на drbd

xen_node1 / # drbdadm primary all

проверим

xen_node1 / # cat /proc/drbd

version: 0.7.23 (api:79/proto:74) SVN Revision: 2686 build by root@xen_node1, 2007-05-21 13:20:53

0: cs:WFConnection st:Primary/Unknown ld:Consistent
   ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0
1: cs:WFConnection st:Primary/Unknown ld:Consistent
   ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0

Все нормально теперь они доступны для записи

12. Отформатировать разделы

xen_node1 / # mkreiserfs /dev/drbd0
xen_node1 / # mkreiserfs /dev/drbd1
xen_node1 / # mkswap /dev/sda5
xen_node1 / # mkswap /dev/sda6

13. Создаем временные папки

mkdir /mnt/gentoo1 /mnt/gentoo2 

монтируем

xen_node1 / # mount /dev/drbd0 /mnt/gentoo1
xen_node1 / # mount /dev/drbd1 /mnt/gentoo2

14. Разворачиваем из stage4 gentoo Для первой машины

xen_node1 / # tar -xjpfv  /mnt/backups/stage4/Rescue-stage4-16.05.2007-minimal.tar.bz2  -C /mnt/gentoo1

Для второй

xen_node1 / # tar -xjpfv  /mnt/backups/stage4/Rescue-stage4-16.05.2007-minimal.tar.bz2  -C /mnt/gentoo2


Для каждой машины правим файлы конфигурации

xen_node1 / # cat fstab

# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.
# /dev/BOOT	/boot 		ext2            noauto,noatime	1 2

/dev/hda3 / reiserfs noatime 0 1 /dev/hda2 none swap sw 0 0

#/dev/cdrom   	/mnt/cdrom	audo            noauto,ro	0 0
#/dev/fd0      /mnt/floppy	auto            noauto		0 0

Закомментируем boot. fstab одинаковый для обоих виртуальных машинах

Этими файлами персонализируем, как они будут ведить пользователи эти DomU.

правим /etc/conf.d/net правим /etc/conf.d/hostname

15. Собираем ядро для DomU

Make menuconfig

Linux Kernel Configuration: Xen kernel config (Domain U) Processor type and features --->

 [*] Enable Xen compatible kernel

High Memory Support (64GB) ---> # этим отличается от статьи http://gentoo-wiki.com/HOWTO_Xen_and_Gentoo XEN --->

  [ ] Privileged Guest (domain 0)                                     

< > Backend driver support <*> Block-device frontend driver <*> Network-device frontend driver < > Framebuffer-device frontend driver [*] Scrub memory before freeing it to Xen [ ] Disable serial port drivers <*> Export Xen attributes in sysfs Xen version compatibility (3.0.2 and later) --->

+CONFIG_HIGHMEM64G=y # этим отличается от статьи http://gentoo-wiki.com/HOWTO_Xen_and_Gentoo

+CONFIG_X86_PAE=y # этим отличается от статьи http://gentoo-wiki.com/HOWTO_Xen_and_Gentoo


xen_node1 / # make 
xen_node1 / # make modules
xen_node1 / # make install 

Перенести ядро DomU в /usr/lib/xen/boot/ и проверить переменную "kernel" в /etc/ha.d/ha.xen/virt-srw1 /etc/ha.d/ha.xen/virt-srw2

Инсталлируем модули для domU

xen_node1 / # export INSTALL_MOD_PATH="/mnt/gentoo1"
xen_node1 / # make modules_install
xen_node1 / # export INSTALL_MOD_PATH="/mnt/gentoo2"
xen_node1 / # make modules_install

размонтируем drbd

xen_node1 / # umount /dev/drbd0
xen_node1 / # umount /dev/drbd1

16. Проверяем domainU

xen_node1 / # xm create -C /etc/ha.d/ha.xen/virt-srw1

Выход в консоль Dom0 Ctrl + ]

xen_node1 / # xm create  -C /etc/ha.d/ha.xen/virt-srw2


Если в консоли виртуальной машины появилась такая запись 
Warning: unable to open an initial console.
-----------------------------------------------------
Your system seems to be missing critical device files
in /dev !  Although you may be running udev or devfs,
the root partition is missing these required files !
To rectify this situation, please do the following:
mkdir /mnt/fixit
mount --bind / /mnt/fixit
cp -a /dev/* /mnt/fixit/dev/
umount /mnt/fixit
rmdir /mnt/fixit
You may refer to these instructions at /etc/issue.
If you previously had an issue file, it has been
backed up at /etc/issue.devfix.  Once you've fixed
your system, you will have to restore your old issue
file in order to get rid of this warning.

Выполните следующие


xen_node1 / # mkdir /mnt/fixit
xen_node1 / # mount --bind / /mnt/fixit 
xen_node1 / # cd /mnt/fixit/dev
xen_node1 / # mknod -m 600 console c 5 1 && chown root:tty console
xen_node1 / # mknod -m 600 initctl p
xen_node1 / # mknod -m 666 null c 1 3 
xen_node1 / # mv -f /etc/issue.devfix /etc/issue 
xen_node1 / # cd ~
xen_node1 / # umount /mnt/fixit
xen_node1 / # rmdir /mnt/fixit

Если, какие ни будь устройства есть, их надо удалить и создать новые.


17. Если все работает как надо переходим к следующему Останавливаем все domU

xen_node1 / # xm shutdown –wa

запускает heartbeat

xen_node1 / # /etc/init.d/heartbeat start

проверяем Xen

xen_node1 init.d # xm list


Name ID Mem VCPUs State Time(s)

Domain-0 0 99 1 r----- 184.7

gentoo1 7 256 1 -b---- 4.8

gentoo2 7 256 1 -b---- 4.8

проверяем DRBD

xen_node1 / # cat /proc/drbd

version: 0.7.23 (api:79/proto:74) SVN Revision: 2686 build by root@xen_node1, 2007-05-21 13:20:53

0: cs:Connected st:Primary/Unknown ld:Consistent
   ns:3908 nr:3476 dw:7384 dr:32820 al:0 bm:2133 lo:0 pe:0 ua:0 ap:0
1: cs:Connected st:Primary/Unknown ld:Consistent
   ns:4096 nr:4544 dw:8816 dr:32604 al:0 bm:2948 lo:0 pe:0 ua:0 ap:0


Если на виртуальных машинах IP адрес раздается через DHCP 

для дистрибутива gentoo в /etc/conf.d/net виртуальных машин (что-бы не менялся MAC адрес) прописать mac_eth0="00:16:3E:XX:XX:XX" вместо XX:XX: свои значения

Добавляем

rc-update add heartbeat default

Затем обновляем зависимости запуска

xen_node1 # /etc/init.d/depscan.sh -u

Не в коем случаи на ставить в runlevels default net.eth0 net.eth1 должно быть

xen_node1 / # rc-status

Runlevel: default

drbd                                                               [ started  ]
heartbeat                                                          [ started  ]
local                                                              [ started  ]
xend                                                               [ started  ]
xinetd                                                             [ started  ]

15. Устанавливаем на другой нод, Разделы на дисках должны полностью быть идентичны с теми которые мы настроил для первого нода, особенно для DRBD разделов.

Копируем любым методом каким угодно я использовал mkstage4.sh только то что относится к нодам Это разделы /dev/sda1, /dev/sda2 /dev/sda3

Поправить ядро если машины разные.

после установки ядра emerge -K drbd и запустите depmod –a

Не забываем загрузчик

правим /etc/conf.d/net правим /etc/conf.d/hostname

Перезапускаем нод и скорее всего полезут ошибки это связано с тем что сетевые карты стали иметь другие название (вместо eth0 будет eth2 ) идем в /etc/udev/rules.d/70-persistent-net.rules и исправляем на те значения которые соответствуют нашим настройкам. Будут ошибки при запуске heartbeat Удалить файлы /var/lib/heartbeat/hb_generation Удалить файлы /var/lib/heartbeat/hb_uuid Они сгенерируются снова Ждем когда DRBD синхронизирует разделы.

xen_node2 / # watch "cat /proc/drbd "

Every 2.0s: cat /proc/drbd Wed Nov 14 17:56:25 2007

version: 0.7.24 (api:79/proto:74) SVN Revision: 2875 build by root@xen_node1, 2007-11-14 11:59:09

0: cs:Connected st:Primary/Secondary ld:Consistent
   ns:11740 nr:2503648 dw:2515408 dr:47144 al:0 bm:935 lo:0 pe:0 ua:0 ap:0
1: cs:Connected st:Primary/Secondary ld:Consistent
   ns:8168040 nr:4084144 dw:4085956 dr:8179912 al:1 bm:1674 lo:0 pe:0 ua:0 ap:0

«Разгоняем» виртуальные машины по своим нодам, на консоли нода где работают 2-е xm машины доём команду

xen_node1 / # /usr/lib/heartbeat/hb_standby foreign 2007/11/14_17:59:37 Going standby [foreign].

Проверка drbd на xen_node1 ноде 1

xen_node1 / # cat /proc/drbd

Every 2.0s: cat /proc/drbd Wed Nov 14 18:00:31 2007

version: 0.7.24 (api:79/proto:74) SVN Revision: 2875 build by root@xen_node1, 2007-11-14 11:59:09

0: cs:Connected st:Primary/Secondary ld:Consistent
   ns:11780 nr:2503648 dw:2515448 dr:47144 al:0 bm:935 lo:0 pe:0 ua:0 ap:0
1: cs:Connected st:Secondary/Primary ld:Consistent
   ns:8168656 nr:4084560 dw:4086988 dr:8180012 al:1 bm:2226 lo:0 pe:0 ua:0 ap:0
Проверяем виртуальные машины xen_node1 ноде 1

xen_node1 ~ # xm list

Name ID Mem VCPUs State Time(s)

Domain-0 0 98 2 r----- 288.5

gentoo1 6 256 1 -b---- 11.1


Проверка drbd на xen_node2 ноде 2

xen_node2 ~ # cat /proc/drbd

version: 0.7.24 (api:79/proto:74) SVN Revision: 2875 build by root@xen_node1, 2007-10-19 15:47:05

0: cs:Connected st:Secondary/Primary ld:Consistent
   ns:0 nr:564 dw:564 dr:0 al:0 bm:4 lo:0 pe:0 ua:0 ap:0
1: cs:Connected st:Primary/Secondary ld:Consistent
   ns:416 nr:4084328 dw:4084744 dr:6060 al:0 bm:1371 lo:0 pe:0 ua:0 ap:0

Проверяем виртуальные машины xen_node2 ноде 2

xen_node2 ~ # xm list

Name ID Mem VCPUs State Time(s)

Domain-0 0 98 2 r----- 52.6

gentoo2 1 256 1 -b---- 5.0