Bug 23014 - [FR] fdisk update
Summary: [FR] fdisk update
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: fdisk (show other bugs)
Version: unstable
Hardware: all Linux
: P3 enhancement
Assignee: Alexey Gladkov
QA Contact: qa-sisyphus
URL: http://www.osnews.com/story/22872/Lin...
Keywords:
Depends on:
Blocks: 16000
  Show dependency tree
 
Reported: 2010-02-23 00:13 MSK by Michael Shigorin
Modified: 2020-02-14 12:33 MSK (History)
15 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Shigorin 2010-02-23 00:13:46 MSK
Предлагаю обновить util-linux-ng до текущей версии 2.17.1 (надо же, как вовремя вышла) -- из-за fdisk и доступности/востребованности дисков с 4K-секторами.  См. тж. http://lwn.net/Articles/322777/

2 ldv: может коснуться и ftp.

2.17:
   - the fdisk command aligns newly created partitions to minimum_io_size
     boundary ("minimum_io_size" is physical sector size or stripe chunk
     size on RAIDs).
   - the fdisk command supports disks with alignment_offset now.

2.17.1:
   - supports new command line option "-c" to disable DOS-compatible mode from
     command line.

     The DOS-compatible mode is DEPRECATED and will be disabled by default
     in the next major release. Currently, the DOS mode is enabled by default
     for backward compatibility only. 

     The cylinders as display units are DEPRECATED. It's recommended to use
     "-u" command line option or "u" fdisk command and use sectors as display
     units.

   Note that the new support for 4K-sector disks is useless in DOS-compatible
   mode. The fdisk command prints warning(s) when startup in DOS mode.
Comment 1 Alexey Gladkov 2010-02-23 00:39:55 MSK
Меня всегда изумляла стремительность регистрации багов "собрать новую версию".
Да, я планирую собрать новую версию util-linux-ng.
Comment 2 Michael Shigorin 2010-02-23 00:45:10 MSK
Лёш, я не вредный и не версиоман, просто ровно сегодня добрался WD15EARS, который именно с такими блоками. :)

Сходу сообразить обновление не вышло -- в бранч из твоего rpm stable/v2.17.1 чисто не мержится; пришлось наскоро собрать на коленке и проверить вот так:

root@home util-linux-ng-2.17.1/fdisk/.libs # LD_LIBRARY_PATH=../../shlibs/blkid/src/.libs/ ./fdisk -c -u -b 4096 /dev/sdd

И впрямь -- выравнивает разделы хорошо, начинает тоже не с 63-го сектора, а с 256-го:

Disk /dev/sdd: 1500.3 GB, 1500301910016 bytes
255 heads, 63 sectors/track, 22800 cylinders, total 366284646 sectors
Units = sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xa0b97552

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1             256     1048831     4194304   82  Linux swap / Solaris
/dev/sdd2         1048832   366284645  1460943256   83  Linux

2 sbolshakov: подобные изменения бы и в libevms сделать -- вешать отдельно?
(тж. http://freesource.info/wiki/HCL/XranenieDannyx/SoftwareRAID#p20496-5)
Comment 3 Michael Shigorin 2010-02-23 01:04:12 MSK
Просто для сравнения -- bonnie++ "до" и "после" и впрямь втрое различается:

Version 1.03e       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
home.nospam.kiev 8G           68102  32 24682  11           78806  17 103.2   0
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16    48   0 +++++ +++    40   0    48   0 +++++ +++    42   0
home.nospam.kiev.ua,8G,,,68102,32,24682,11,,,78806,17,103.2,0,16,48,0,+++++,+++,40,0,48,0,+++++,+++,42,0
bonnie++ -d . -r 4096 -f  1.87s user 106.32s system 5% cpu 35:30.96 total

Version 1.03e       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
home.nospam.kiev 8G           96931  48 42900  19           100306  22 220.9   1
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16   266   3 +++++ +++   215   2   266   4 +++++ +++   215   2
home.nospam.kiev.ua,8G,,,96931,48,42900,19,,,100306,22,220.9,1,16,266,3,+++++,+++,215,2,266,4,+++++,+++,215,2
bonnie++ -d . -r 4096 -f  1.98s user 106.95s system 15% cpu 11:25.15 total
Comment 4 Michael Shigorin 2010-02-23 13:24:13 MSK
Извиняюсь за спам -- чтоб уж хоть здесь склерозница была.

Во-первых, передавать fdisk'у -b 4096 необязательно (поскольку текущие HDD наружу всё равно показывают "типа 512"); во-вторых, оказалось важным передать текущему (3.0.1) mkfs.xfs параметр -s size=4096.  Иначе всё та же трёхкратная просадка на bonnie++.

Также похоже, что -b 4096 смутило кого-то по дороге и файловая система была создана размером в 170Gb вместо 1.4Tb, что было замечено уже утром.  То есть теперь так:

root@home util-linux-ng-2.17.1/fdisk/.libs # LD_LIBRARY_PATH=../../shlibs/blkid/src/.libs/ ./fdisk -c -u -l /dev/sdd

Disk /dev/sdd: 1500.3 GB, 1500301910016 bytes
255 heads, 63 sectors/track, 182401 cylinders, total 2930277168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x4f167da7

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1            2048     8390655     4194304   82  Linux swap / Solaris
/dev/sdd2         8390656  2930277167  1460943256   83  Linux
Comment 5 Василий Терешко 2010-02-27 00:06:50 MSK
Аналогичные пляски с бубном вокруг WD10EARS
Примерно с таким же результатом.
Comment 6 Vitaly Lipatov 2010-03-02 12:32:27 MSK
(В ответ на комментарий №1)
> Меня всегда изумляла стремительность регистрации багов "собрать новую версию".
> Да, я планирую собрать новую версию util-linux-ng.
А меня изумляет, что я подключаю новый диск на 1Тб, и получаю проблемы с производительностью, потому что неправильно его разметил. 
Кто бы мог подумать, что тут такая многосторонняя засада, для избежания которой нужны исследования возможностей fdisk, LVM и пр.
Comment 7 Alexey Gladkov 2010-03-02 14:42:06 MSK
У меня в:

http://git.altlinux.org/people/legion/packages/util-linux-ng.git?p=util-linux-ng.git;a=shortlog;h=refs/heads/rpm

лежит готовый 2.17.1. Если есть возможность, то проверь его.
Comment 9 Alexey Gladkov 2010-03-05 01:31:12 MSK
Прошу проверить с версией 2.17.1.
Comment 10 Michael Shigorin 2010-03-06 13:08:54 MSK
(In reply to comment #9)
> Прошу проверить с версией 2.17.1.
Проверял с самосбором, работает.  Вот думаю -- не выйдет ли обновить до выпуска школьного комплекта в 5.1/branch и p5/branch, бэкпортить-то нельзя из-за изменений в подпакетизации.

Но это другая сказка, а за обновление -- спасибо :)
Comment 11 Michael Shigorin 2010-03-06 13:20:08 MSK
(In reply to comment #8)
> http://www.altlinux.org/РаботаСДисками/WD
Хм... забыл здесь упомянуть -- http://www.altlinux.org/BigSector; предлагаю смержить одну страничку в другую.
Comment 12 Vitaly Lipatov 2010-03-06 22:38:09 MSK
(В ответ на комментарий №11)
> (In reply to comment #8)
> > http://www.altlinux.org/РаботаСДисками/WD
> Хм... забыл здесь упомянуть -- http://www.altlinux.org/BigSector; предлагаю
> смержить одну страничку в другую.
Не здесь, а везде забыл упомянуть. Очень зря, времени мало на тройную работу.
Comment 13 Vitaly Lipatov 2010-05-25 21:19:27 MSD
А в чём смысл исправленногj fdisk? если I/O size всё равно 512, как и Sector size?

# fdisk -u -l
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x5dd80a4b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1              63  1953520064   976760001   83  Linux
Comment 14 Andrey Rahmatullin 2010-05-25 21:21:32 MSD
Для WD EARS - ни в чём, он не возвращает настоящий размер сектора.
Comment 15 Michael Shigorin 2010-06-12 11:32:02 MSD
(In reply to comment #14)
> Для WD EARS - ни в чём, он не возвращает настоящий размер сектора.
Подтверждаю, рассматривали выхлоп IDENTIFY DEVICE от WD15EARS по ATA-8-ACS и D1699r4c -- то, что можно купить, про 4K не рассказывает (в отличие от более ранних инженерных образцов, судя по LKML).

2 lav: ещё требуется linux-2.6.31+, насколько понимаю: http://www.osnews.com/thread?409410