Автор Тема: Выбор файловой системы под 12ТБ HDD для медиаархива, архива ...  (Прочитано 9965 раз)

Оффлайн kiav

  • Завсегдатай
  • *
  • Сообщений: 527
  • Стич-спасатель
    • Email
Я бы и не думал об этом и просто взял ext4. Другие ФС на ПК я даже не пробовал (если не считать ее предшественников ext2 и ext3).

Просто, создание ext4 с проверкой на плохие блоки в режиме записи потянет на неделю-две. При таком раскладе хочется быть уверенным, что выбор хотя бы претендует на оптимальность.

Что будет на диске:
1.) Несколько гигабайт (а может даже десятков) относительно мелких файлов. Это общая папка samba. Доступ каждый день.
2.) Большая коллекция видео, скачанного с YouTube. Там файлы на сотни мегабайт и единицы гигабайт. Доступ на чтение, относительно редкий. Но пополняется это все с помощью качалки с youtube и ужатия с помощью ffmpeg. Медиасервера нет и не планируется.
3.) Море архивов с очень редким доступом.

RAID тоже не будет.

Что сейчас более-менее подходит? Или стоит разбить диск на отдельные файловые системы и уже на них подобрать разные варианты?

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Просто, создание ext4 с проверкой на плохие блоки в режиме записи потянет на неделю-две.
Какой-нибудь "dd if=/dev/zero of=/dev/sd<кто там> bs=1M" не быстрее будет? А потом уже ext4 в обычном режиме.

Оффлайн kiav

  • Завсегдатай
  • *
  • Сообщений: 527
  • Стич-спасатель
    • Email
Просто, создание ext4 с проверкой на плохие блоки в режиме записи потянет на неделю-две.
Какой-нибудь "dd if=/dev/zero of=/dev/sd<кто там> bs=1M" не быстрее будет? А потом уже ext4 в обычном режиме.
Не, я привык рассчитывать на то, что найденное badblocks будет не использоваться в ext4. А dd просто покажет есть ли паршивые блоки в принципе. И только на чтение.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Не, я привык рассчитывать на то, что найденное badblocks будет не использоваться в ext4. А dd просто покажет есть ли паршивые блоки в принципе. И только на чтение.
Тут запись как раз. И для возврата по гарантии важно именно наличие в принципе. Зачем нужно сразу с плохими секторами hdd в работу пускать? Или он б/у?

Оффлайн kiav

  • Завсегдатай
  • *
  • Сообщений: 527
  • Стич-спасатель
    • Email
Тут запись как раз.
Не заметил ... Начал с теста на чтение по этой схеме.

Ушло 19 часов. Это кратно быстрее badblocks, несомненно (я ждал примерно столько на дисках в разы меньше).
# dd if=/dev/sdd of=/dev/zero bs=1M
11444224+0 записей получено
11444224+0 записей отправлено
12000138625024 байт (12 TB, 11 TiB) скопирован, 57951,9 s, 207 MB/s

Скорость он дал 207 MB/s, а должен был по спецификации 242 MiB/s. Не знаю в чем дело. Никогда еще не видел, чтобы реальность совпадала со спецификацией.

Что советуете делать с тестом на запись? Сутки - не неделя. Можно и провести.

Как видно из SMART, размер физического блока у него - 4096 байт. 1M - это сколько? Это MB (мульён) или MiB (1024 * 1024 = 1048576 байт). В man dd ни слова об этом. Может поэтому скорость не паспортная на чтении.
Спойлер
# smartctl -a /dev/sdd
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-5.4.35-std-def-alt1] (ALT Sisyphus 7.0-alt1)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Device Model:     TOSHIBA MG07ACA12TE
Serial Number:    Y9X0A1K0F96G
LU WWN Device Id: 5 000039 9c8d12353
Firmware Version: 0101
User Capacity:    12 000 138 625 024 bytes [12,0 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    7200 rpm
Form Factor:      3.5 inches
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   ACS-3 T13/2161-D revision 5
SATA Version is:  SATA 3.3, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Wed May  6 10:07:08 2020 MSK
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x80) Offline data collection activity
                                        was never started.
                                        Auto Offline Data Collection: Enabled.
Self-test execution status:      (   0) The previous self-test routine completed
                                        without error or no self-test has ever
                                        been run.
Total time to complete Offline
data collection:                (  120) seconds.
Offline data collection
capabilities:                    (0x5b) SMART execute Offline immediate.
                                        Auto Offline data collection on/off support.
                                        Suspend Offline collection upon new
                                        command.
                                        Offline surface scan supported.
                                        Self-test supported.
                                        No Conveyance Self-test supported.
                                        Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                                        power-saving mode.
                                        Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                                        General Purpose Logging supported.
Short self-test routine
recommended polling time:        (   2) minutes.
Extended self-test routine
recommended polling time:        (1209) minutes.
SCT capabilities:              (0x003d) SCT Status supported.
                                        SCT Error Recovery Control supported.
                                        SCT Feature Control supported.
                                        SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000b   100   100   050    Pre-fail  Always       -       0
  2 Throughput_Performance  0x0005   100   100   050    Pre-fail  Offline      -       0
  3 Spin_Up_Time            0x0027   100   100   001    Pre-fail  Always       -       7715
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       1
  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000b   100   100   050    Pre-fail  Always       -       0
  8 Seek_Time_Performance   0x0005   100   100   050    Pre-fail  Offline      -       0
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       19
 10 Spin_Retry_Count        0x0033   100   100   030    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       1
 23 Unknown_Attribute       0x0023   100   100   075    Pre-fail  Always       -       0
 24 Unknown_Attribute       0x0023   100   100   075    Pre-fail  Always       -       0
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       0
193 Load_Cycle_Count        0x0032   100   100   000    Old_age   Always       -       1
194 Temperature_Celsius     0x0022   100   100   000    Old_age   Always       -       39 (Min/Max 25/50)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
220 Disk_Shift              0x0002   100   100   000    Old_age   Always       -       1179648
222 Loaded_Hours            0x0032   100   100   000    Old_age   Always       -       16
223 Load_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
224 Load_Friction           0x0022   100   100   000    Old_age   Always       -       0
226 Load-in_Time            0x0026   100   100   000    Old_age   Always       -       589
240 Head_Flying_Hours       0x0001   100   100   001    Pre-fail  Offline      -       0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

Хотя, я поделил 12000138625024 байт (это паспортная емкость по данным SMART) на 11444224 (количество записей, сделанных dd) и получил те самые 1048576. Это явно 1 MiB. Так что потери скорости на некратных блоках не может быть.

Если делать тест на запись при наличии кеша в 256 MiB, то какой размер записи dd стоит выбрать? Или без разницы, лишь бы кратно 4096 байтам?

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Это MB (мульён) или MiB
Я не так давно узнал, что есть различие MB/MiB. У меня всегда было, что если за компьютером, то речь про степень 2. А тут хипстеры понапридумывали фигни какой-то. :-)

Оффлайн kiav

  • Завсегдатай
  • *
  • Сообщений: 527
  • Стич-спасатель
    • Email
А тут хипстеры понапридумывали фигни какой-то. :-)
Моя версия - маркетологи перехватили удобные ГБ и МБ. Некоторые время можно было вводить людей в заблуждение и "зарабатывать" больше. А программистам и сочувствующим придумали менее удобную единицу МиБ и подобное.

Оффлайн flint1975

  • Завсегдатай
  • *
  • Сообщений: 1 425
    • Email
ну dd if=/dev/zero .....оно сразу и заремапит бэдовые сектора, причем, если это WD то сразу в заводской P-list.
И в смарте может это скрыть - на некоторых вд-эшниках такое видел.
если просто протестировать - то victoria от hdd.by , хотя она может и заремапить сразу.
Но мне всегда было интересно, зачем создавать такой огромный архив данных без резервирования (читай без зеркала), а потом пытаться восстановить инфу?!

Оффлайн kiav

  • Завсегдатай
  • *
  • Сообщений: 527
  • Стич-спасатель
    • Email
зачем создавать такой огромный архив данных без резервирования (читай без зеркала), а потом пытаться восстановить инфу?!
А не верю я в это. Да и понимаю, что на диск пихаю то, что в принципе восстановимо. Что реально важно - тоже на диске, но в коробке и по USB.

оно сразу и заремапит бэдовые сектора
Т.е. я буду уверен, что проблем нет, а они есть?

Добавлено: Не, не буду. Reallocated_Sector_Ct не изменился, там, по-прежнему, 0.
« Последнее редактирование: 06.05.2020 16:40:26 от kiav »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Не, я привык рассчитывать на то, что найденное badblocks будет не использоваться в ext4.

Сражаемся с bad-блоками
https://forum.altlinux.org/index.php?topic=32361.msg276715#msg276715

Оффлайн kiav

  • Завсегдатай
  • *
  • Сообщений: 527
  • Стич-спасатель
    • Email
Сражаемся с bad-блоками
https://forum.altlinux.org/index.php?topic=32361.msg276715#msg276715
Спасибо. Именно это я имел в виду. Проверку плохих блоков можно запустить при ее создании, при проверке. А можно сначала проверить badblocks и скормить список утилите создания файловой системы. Я просто не стал углубляться.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Сражаемся с bad-блоками
https://forum.altlinux.org/index.php?topic=32361.msg276715#msg276715
Спасибо. Именно это я имел в виду. Проверку плохих блоков можно запустить при ее создании, при проверке. А можно сначала проверить badblocks и скормить список утилите создания файловой системы. Я просто не стал углубляться.

Проверка с резервированием пллохих блоков выполняется после создания файловой. Это идеальный вериант если блины жёсткого "битые". Чтобы зарезервитровать блоки как запрещённые к использованию.
man fsck.ext4 # перевод с английского
          -c Эта опция заставляет e2fsck использовать программу badblocks (8) для
               сканирования устройства только для чтения, чтобы найти любые поврежденные блоки.. Если
               обнаружены какие-либо поврежденные блоки, они добавляются в индекс плохих блоков, чтобы
               предотвратить их размещение в файле или каталоге. Если эта
               опция указана дважды, то сканирование плохих блоков будет выполняться
               с использованием неразрушающего теста чтения-записи.

Добавил по ссылке цитирование man-а с переводом на русский.
« Последнее редактирование: 07.05.2020 10:53:54 от Speccyfighter »

Оффлайн kiav

  • Завсегдатай
  • *
  • Сообщений: 527
  • Стич-спасатель
    • Email
Опыты закончил. Создал ext4. И не через командную строку, а через GUI "Диспетчер разделов от KDE" (partitionmanager).

Не думал, что при создании раздела он создаст и ФС.
Спойлер
Create a new partition table (type: gpt) on «/dev/sdd»
Job: Create new partition table on device «/dev/sdd»
Command: sfdisk /dev/sdd
Create new partition table on device «/dev/sdd»: Success
Create a new partition table (type: gpt) on «/dev/sdd»: Success

Create a new partition (10,91 ТиБ, ext4) on «/dev/sdd»
Job: Create new partition on device «/dev/sdd»
Command: sfdisk --force --append /dev/sdd
Create new partition «/dev/sdd1»: Success

Job: Create file system «ext4» on partition «/dev/sdd1»
Command: mkfs.ext4 -qF /dev/sdd1

Command: sfdisk --part-type /dev/sdd 1 0FC63DAF-8483-4772-8E79-3D69D8477DE4
Create file system «ext4» on partition «/dev/sdd1»: Success

Job: Set the file system label on partition «/dev/sdd1» to ""
Command: e2label /dev/sdd1
Set the file system label on partition «/dev/sdd1» to "": Success

Job: Check file system on partition «/dev/sdd1»
Command: e2fsck -f -y -v /dev/sdd1
Check file system on partition «/dev/sdd1»: Success
Create a new partition (10,91 ТиБ, ext4) on «/dev/sdd»: Success

Можно ли создать файловую систему на устройстве в целом (без создания таблицы разделов и самого раздела) я проверять не стал. В некоторых статьях видел, что так делают.

Вопреки моим беспокойствам, размер блока выбран так, как мне нравится - 4096 байт.
Спойлер
# tune2fs -l /dev/sdd1
tune2fs 1.44.6 (5-Mar-2019)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          14350ec1-d45b-4b00-9a78-fe7983ee93ff
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
Filesystem flags:         signed_directory_hash
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              366215168
Block count:              2929719552
Reserved block count:     146485977
Free blocks:              2906340961
Free inodes:              366215157
First block:              0
Block size:               4096
Fragment size:            4096
Group descriptor size:    64
Reserved GDT blocks:      651
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         4096
Inode blocks per group:   256
Flex block group size:    16
Filesystem created:       Sat May  9 01:15:01 2020
Last mount time:          n/a
Last write time:          Sat May  9 01:15:24 2020
Mount count:              0
Maximum mount count:      -1
Last checked:             Sat May  9 01:15:24 2020
Check interval:           0 (<none>)
Lifetime writes:          1055 MB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               256
Required extra isize:     32
Desired extra isize:      32
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      517f7c2e-1760-4ea7-8c97-5310deece0b6
Journal backup:           inode blocks
Checksum type:            crc32c
Checksum:                 0xc4000ce8

Но без сюрпризов не обошлось. Диск почти сутки "елозил" даже без явной пользовательской активности. Оказалось, что дело в ext4lazyinit. Плюс - что-то делает jbd2.

Для интересующихся - смотрел нагрузку так:
# iotop -obPat -u root -d 600
Спойлер
16:57:49 Total DISK READ :       0.00 B/s | Total DISK WRITE :       7.75 K/s
16:57:49 Actual DISK READ:     395.87 B/s | Actual DISK WRITE:       2.42 M/s
    TIME    PID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
16:57:49    2069 be/3 root          0.00 B      2.34 M  0.00 %  1.57 % [jbd2/sdd1-8]
16:57:49    2079 be/4 root          0.00 B      0.00 B  0.00 %  0.57 % [ext4lazyinit]

...

18:17:50 Total DISK READ :       0.00 B/s | Total DISK WRITE :       8.60 K/s
18:17:50 Actual DISK READ:    1972.52 B/s | Actual DISK WRITE:       2.44 M/s
    TIME    PID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
18:17:50    2069 be/3 root          0.00 B      3.59 M  0.00 %  1.61 % [jbd2/sdd1-8]
18:17:50    2079 be/4 root          0.00 B      0.00 B  0.00 %  0.57 % [ext4lazyinit]

18:27:50 Total DISK READ :       0.00 B/s | Total DISK WRITE :       9.19 K/s
18:27:50 Actual DISK READ:     730.42 B/s | Actual DISK WRITE:    1010.48 K/s
    TIME    PID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
18:27:50    2069 be/3 root          0.00 B      3.65 M  0.00 %  1.57 % [jbd2/sdd1-8]

Вероятно, более удачным выбором была бы xfs.

Оффлайн thunderamur

  • Начинающий
  • *
  • Сообщений: 48
Вероятно, более удачным выбором была бы xfs.
Думаю под медиаархив в 12 ТБ однозначно, да.

Оффлайн kiav

  • Завсегдатай
  • *
  • Сообщений: 527
  • Стич-спасатель
    • Email
А XFS вообще в релизе на P9?

В очередной раз засомневался, буду переезжать на RAID1 (купил еще один точно такой же диск).