[provision] Set XFS block size to default (4k)

Bug #1318614 reported by Sergii Golovatiuk
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Fuel for OpenStack
Fix Committed
High
Sergii Golovatiuk

Bug Description

Following Bug #1316266 the default sector size was changed from 4k to 512. Changing block size to 512 causes performance degradation on the most of equipment (HDDs and Raid Controllers). Modern HDDs usually have Advanced Formatting which means that physical HDD sector has 4k instead of 512b. Modern Controllers operates better with 4k blocks as internal operations are optimized for 4k sector size. Instead of resizing size to 512 there should be a list of hardware which has problems with XFS and 4k block (LSI SAS 2008 RAID)

Revision history for this message
Sergii Golovatiuk (sgolovatiuk) wrote :

Related Bug #1278875

description: updated
Mike Scherbakov (mihgen)
Changed in fuel:
status: New → Confirmed
Changed in fuel:
assignee: nobody → Vladimir Kozhukalov (kozhukalov)
Dmitry Ilyin (idv1985)
summary: - Set XFS partition size to default (4k)
+ [provision] Set XFS partition size to default (4k)
Revision history for this message
Dmitry Pyzhov (dpyzhov) wrote : Re: [provision] Set XFS partition size to default (4k)
Changed in fuel:
milestone: 5.1 → 6.0
status: Confirmed → Won't Fix
Mike Scherbakov (mihgen)
Changed in fuel:
status: Won't Fix → Confirmed
Changed in fuel:
milestone: 6.0 → 6.1
Revision history for this message
Sergii Golovatiuk (sgolovatiuk) wrote :

From what I see on real SSDs we have a huge drop in performance on CEPH as SSD internal chunk is 4k and it has packing/repacking chunks of file system to internal chunks.

Dmitry Pyzhov (dpyzhov)
tags: added: volumes
Changed in fuel:
milestone: 6.1 → 7.0
Revision history for this message
Andrew Woodward (xarses) wrote :

Is there a reason that this was removed from 6.1?

tags: added: customer-found
Revision history for this message
Andrew Woodward (xarses) wrote :

reported by cclason as being customer found

Revision history for this message
Dmitry Pyzhov (dpyzhov) wrote :

We can not fix it without refactoring of volume manager. It will be done in 7.0

Dmitry Pyzhov (dpyzhov)
Changed in fuel:
milestone: 6.1 → 7.0
Dmitry Pyzhov (dpyzhov)
tags: added: module-volumes
removed: volumes
Mike Scherbakov (mihgen)
Changed in fuel:
milestone: 7.0 → 6.1
status: Confirmed → Won't Fix
no longer affects: fuel/6.1.x
Revision history for this message
Mike Scherbakov (mihgen) wrote :

Dmitry P., how it's related to the volume manager refactoring? Do we have any data on the real impact of using 512b instead of 4k?

tags: added: qa-agree-7.0 release-notes
tags: added: release-notes-done
Revision history for this message
Sergii Golovatiuk (sgolovatiuk) wrote :

Why can't exclude "Symbios Logic MegaRAID SAS 2208" from list of supported hardware and revert change back to 4k?

IMO, we did more harm than good. This issue is hardware issue which must be solved by LSI (actually it's solved in recent firmware).
This bug kills I/O performance drastically.

Changed in fuel:
status: Won't Fix → Confirmed
Dmitry Pyzhov (dpyzhov)
no longer affects: fuel/6.0-updates
Revision history for this message
Dmitry Pyzhov (dpyzhov) wrote :

Volume manager cannot handle flexible block size. But we can implement Sergey's proposal if everyone agrees.

no longer affects: fuel/7.0.x
no longer affects: fuel/6.1.x
Dmitry Pyzhov (dpyzhov)
Changed in fuel:
assignee: Fuel Python Team (fuel-python) → Sergii Golovatiuk (sgolovatiuk)
Revision history for this message
Alexander Gordeev (a-gordeev) wrote :

if mkfs.xfs, which will be installed in bootstrap image, creates 4k sector size by default, then IBP doesn't affected by this bug.

fuel-agent has support to deal with arbitrary fs options and pass them to mkfs tools. https://github.com/stackforge/fuel-web/blob/master/fuel_agent/fuel_agent/manager.py#L229-L233

However, this capability is turned off at nailgun's driver side.
None of these partition_scheme.add_fs() calls uses fs options:
https://github.com/stackforge/fuel-web/blob/master/fuel_agent/fuel_agent/drivers/nailgun.py#L250-L253
https://github.com/stackforge/fuel-web/blob/master/fuel_agent/fuel_agent/drivers/nailgun.py#L332-L335

There was relatively old bug, the fix of which introduced 512 sector size.
https://bugs.launchpad.net/fuel/+bug/1316266

meanwhile, pmanager still has hardcoded 512 sector size. https://github.com/stackforge/fuel-library/blob/master/deployment/puppet/cobbler/templates/scripts/pmanager.py#L108 https://github.com/stackforge/fuel-library/blob/master/deployment/puppet/cobbler/templates/scripts/pmanager.py#L614

IBP should be fixed to add xfsprogs to list of packages for 'bootstrap' image. https://bugs.launchpad.net/fuel/+bug/1456325

summary: - [provision] Set XFS partition size to default (4k)
+ [provision] Set XFS block size to default (4k)
Revision history for this message
Alexander Gordeev (a-gordeev) wrote :

To be precise it's about sector size (-s option for mkfs.xfs), not block size (-b option for mkfs.xfs)

Revision history for this message
Andrey Maximov (maximov) wrote :

guys, mkfs should consume "I/O hints" from block device (see ioctl BLKIOOPT, BLKPBSZGET etc) to layout ondisk data structure and data areas relative to the underlying storage's 'optimal_io_size'.
So the easiest solution is to eliminate block and sector size params from mkfs and let mkfs figure out optimal parameters.
look at mkfs.xfs source code - https://git.kernel.org/cgit/fs/xfs/xfsprogs-dev.git/tree/mkfs/xfs_mkfs.c#n1783 looks like it already uses optimal sector size parameters which we override for some reason.

Changed in fuel:
status: Confirmed → In Progress
Revision history for this message
Vladimir Kuklin (vkuklin) wrote :
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to fuel-library (master)

Reviewed: https://review.openstack.org/185713
Committed: https://git.openstack.org/cgit/stackforge/fuel-library/commit/?id=ccfc554e3df5b96ad49525c5b57d0ad6c2ae43c4
Submitter: Jenkins
Branch: master

commit ccfc554e3df5b96ad49525c5b57d0ad6c2ae43c4
Author: Sergii Golovatiuk <email address hidden>
Date: Tue May 26 21:11:26 2015 +0200

    Disable 512b sector

    Patch I4b38ef148c16baacfba12ed07534a3761b3cecf1 (bug/1316266) introduced
    performance downgrade for all SSDs and HDD with advanced formatting
    where physical sector size is 4k. According to test results in some
    cases performance is 10 times slower. Also, there is only one RAID
    adapter found with such behavior "LSI Logic / Symbios Logic MegaRAID SAS
    2208"

    DocImpact: release-notes
    Users with MegaRAID SAS 2208 must upgrade firmware to latest (Provided
    by Cisco and Dell)

    Change-Id: If0d41447e31aac505ca6f7a5f4ee91c401862609
    Closes-Bug: 1318614
    Signed-off-by: Sergii Golovatiuk <email address hidden>

Changed in fuel:
status: In Progress → Fix Committed
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to fuel-docs (stable/6.1)

Related fix proposed to branch: stable/6.1
Review: https://review.openstack.org/194961

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to fuel-docs (stable/6.1)
Download full text (45.4 KiB)

Reviewed: https://review.openstack.org/194961
Committed: https://git.openstack.org/cgit/stackforge/fuel-docs/commit/?id=0e26e7d7cc153d179ec34985645dd23cdd239ddb
Submitter: Jenkins
Branch: stable/6.1

commit 5cc5f0c643aebecaf3bf4580535a3ea7c3334a6c
Author: Mike Scherbakov <email address hidden>
Date: Tue Jun 23 13:43:35 2015 -0700

    Removed streamlined patching backend pieces

    Change-Id: I955e76ccdbd12a9145f4e9b689f80bdf9fcaf929

commit 563c4b5c78ebfcb1f4f91047c2919f6270f9a1d4
Author: Mike Scherbakov <email address hidden>
Date: Tue Jun 23 13:30:30 2015 -0700

    Removed outdated patching guide

    Change-Id: I76180c277789ade9c5ebedd19fe2092847c0b7d9

commit 8d120c14bec1ab41d448683ad146a3053a57c4ee
Author: Irina Povolotskaya <email address hidden>
Date: Tue Jun 23 19:59:11 2015 +0300

    Add dual hypervisor ref arch into 6.1 docs

    Change-Id: I900c24c9de878eafadbfc995aa879b7f55737fac

commit feebd1592d3305b64bbdfd0bc5fe108190aef120
Author: OlgaGusarenko <email address hidden>
Date: Tue Jun 23 18:38:17 2015 +0300

    [OPs guide] Running Ceilometer section edits

    1. conf file extract is updated
    2. note is updated

    Closes-bug: 1467817
    Change-Id: I0217e164108e0ba6c1397045a5e57d13ff429223

commit 44a93f9dead7511a3461ec35248dbb689c81eafd
Author: OlgaGusarenko <email address hidden>
Date: Tue Jun 23 18:04:40 2015 +0300

    [RN6_1] Final changes

    1. capitalization
    2. 2014.2 to 2014.2.2
    3. general improvements

    Change-Id: I45057e90c90550559f66bc67ccdf97a559fd9000

commit bb41389cae58084285688853281516b659686422
Author: evkonstantinov <email address hidden>
Date: Tue Jun 23 16:45:35 2015 +0300

    Update patching decription

    Update patching description with
    the standard Linux commands.

    Change-Id: Ia1a8346639c468fdfce15a11d2430bf3a4731244

commit bf3018fae3f2e564413d33aba6cdebf8868f0b4e
Author: OlgaGusarenko <email address hidden>
Date: Tue Jun 23 15:55:49 2015 +0300

    [RN6_1] Clean up

    1. Rearranges sections
    2. Improves RST
    3. Changes titles order

    Change-Id: I6110bf515667d3d6ba08ad35ff5d593dbc96641e

commit 1c7e4457808e8f2d6c56fdf31252170972e444b9
Author: Maria Zlatkova <email address hidden>
Date: Tue Jun 23 15:26:28 2015 +0300

    Replaces VBOX screenshots

    This patch:
    - replaces VBOX screenshots
    - changes the link for Download Mirantis VirtualBox scripts
     to https://docs.mirantis.com/openstack/fuel/fuel-master/#downloads

    Change-Id: I58dede960c5c3355d39b07ff44b757403f6af02c
    Closes-Bug: #1467872

commit 0a568bf53fc0e25d1d692d5d74b4a7b4d983bbcc
Author: evkonstantinov <email address hidden>
Date: Tue Jun 23 14:01:55 2015 +0300

    6.1 --separate repos

    change wording and add links to the
    separate repos feature.

    Change-Id: Ib5d0778a0d8f1534f79ed2f553574cb69a3150b0

commit 95a188b21cbdd064d92696b7920e6a0105fe0c56
Author: Maria Zlatkova <email address hidden>
Date: Tue Jun 23 12:07:28 2015 +0300

    Corrects the output 'pcs status'

    Changes the example outputs to appropriate ones.

    Change-Id: Ib6d83...

Roman Rufanov (rrufanov)
tags: added: support
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Related blueprints

Remote bug watches

Bug watches keep track of this bug in other bug trackers.