creating a large ext3 ephemeral disk filesystem is much slower than ext4

Bug #1266262 reported by Clint Byrum
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Fix Released
High
Davanum Srinivas (DIMS)
tripleo
Fix Released
High
Clint Byrum

Bug Description

ext3 is more generally available than ext4, but creating an ext3 filesystem involves a lot more writing than ext3. The only reason to retain ext3 is to retain backward compatibility with very old guest OS's or OS's which have chosen not to support ext4 such as SLES.

A plan should be made to deprecate ext3 support in Nova at some point. For TripleO we are not supporting deploying OpenStack itself on older OS's like this, thus we should change this setting in our baremetal cloud(s) to be ext4.

In nova, we should officially deprecate ext3 support in Icehouse's release notes, and change the default to ext4 in Juno.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to tripleo-image-elements (master)

Fix proposed to branch: master
Review: https://review.openstack.org/65009

Changed in tripleo:
assignee: nobody → Clint Byrum (clint-fewbar)
status: Triaged → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to tripleo-heat-templates (master)

Fix proposed to branch: master
Review: https://review.openstack.org/65010

description: updated
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to tripleo-image-elements (master)

Reviewed: https://review.openstack.org/65009
Committed: https://git.openstack.org/cgit/openstack/tripleo-image-elements/commit/?id=4236bb474276eb4cc1807b27e3949ab3b5019260
Submitter: Jenkins
Branch: master

commit 4236bb474276eb4cc1807b27e3949ab3b5019260
Author: Clint Byrum <email address hidden>
Date: Sun Jan 5 11:20:29 2014 -0800

    Allow setting nova default_ephemeral_format

    We need to allow setting default_ephemeral_format so that the overcloud
    can retain the default value but the undercloud can use ext4 to reduce
    deploy times when writing ephemeral filesystems.

    Change-Id: Ic754f3b342b632a6919d4ad1b808627ec9fa4308
    Partial-Bug: #1266262

Changed in tripleo:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to tripleo-heat-templates (master)

Reviewed: https://review.openstack.org/65010
Committed: https://git.openstack.org/cgit/openstack/tripleo-heat-templates/commit/?id=31f519ef88352fd4c439c56df87b36e73355778b
Submitter: Jenkins
Branch: master

commit 31f519ef88352fd4c439c56df87b36e73355778b
Author: Clint Byrum <email address hidden>
Date: Sun Jan 5 12:07:53 2014 -0800

    Configure undercloud to use ext4 ephemeral FS

    Ext4 is significantly more efficient when being created, and we do not
    need to support older OS's or platforms that do not support ext4.

    This will be ineffective until the change to the nova element lands,
    but it is harmless to land this first. That change is referenced by this
    Gerrit change ID in tripleo-image-elements:

    Ic754f3b342b632a6919d4ad1b808627ec9fa4308

    Closes-Bug: #1266262
    Change-Id: Icca5fd94ca230141818ee9adb416f6f062869c6b

Joe Gordon (jogo)
Changed in nova:
status: New → Triaged
status: Triaged → Confirmed
importance: Undecided → Medium
milestone: none → icehouse-3
Changed in nova:
assignee: nobody → Swapnil Kulkarni (coolsvap)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova (master)

Fix proposed to branch: master
Review: https://review.openstack.org/67388

Changed in nova:
status: Confirmed → In Progress
Thierry Carrez (ttx)
Changed in nova:
milestone: icehouse-3 → icehouse-rc1
Tracy Jones (tjones-i)
Changed in nova:
milestone: icehouse-rc1 → next
tags: added: compute icehouse-rc-potential
Thierry Carrez (ttx)
tags: added: icehouse-backport-potential
removed: icehouse-rc-potential
Revision history for this message
Sean Dague (sdague) wrote :

We really need to fix this early in Kilo, it's been a year since we tried to do this cut over, and we need to see if there were any OS that can't support this.

Changed in nova:
assignee: Swapnil Kulkarni (coolsvap) → nobody
status: In Progress → Confirmed
importance: Medium → High
milestone: next → kilo-1
Revision history for this message
John Garbutt (johngarbutt) wrote :

not going to block kilo-1 with this bug.

Changed in nova:
milestone: kilo-1 → none
milestone: none → kilo-2
Revision history for this message
Matt Riedemann (mriedem) wrote :

Here is a mailing list thread from 12/2013 related to changing the default to ext4:

http://lists.openstack.org/pipermail/openstack-dev/2013-December/023150.html

Revision history for this message
Clint Byrum (clint-fewbar) wrote :

Perhaps we should reconsider even making filesystems for ephemeral partitions. Filesystem creation options can affect some corner cases quite negatively, and it just complicates nova-compute. It isn't actually something that should be necessary, and it only applies to Linux guests. If we just do it for ec2-api booted machines to maintain compatibility, we can instead expose a block device and let users put whatever they want on that block device. Sometimes xfs is better.. sometimes you want btrfs.. who are we to say ext4 is a good choice?

Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Fix proposed to branch: master
Review: https://review.openstack.org/142534

Changed in nova:
assignee: nobody → Davanum Srinivas (DIMS) (dims-v)
status: Confirmed → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to nova (master)

Reviewed: https://review.openstack.org/142450
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=a1ba18c6ed4aa0e1cb824f5a9e9b3c9db208eb73
Submitter: Jenkins
Branch: master

commit a1ba18c6ed4aa0e1cb824f5a9e9b3c9db208eb73
Author: Davanum Srinivas <email address hidden>
Date: Wed Dec 17 09:07:59 2014 -0500

    ephemeral file names should reflect fs type and mkfs command

    At some point, we should switch over from ext3 to ext4. If we have
    'default', we can't tell if a file was created with ext3 or ext4
    as the file system. So we need a better way.

    The name format is from discussion on the mailing list [1] and
    was proposed by Pádraig Brady. Once we have this in place, we
    can resurrect changeset to switch over from ext3 to ext4
    first proposed by lifeless in
    I833356af81df743a63d4442d389be82bc25f3914 and reverted in
    I8de225729bbc77b263fcac2fa72b0e9cc6c1b2bf.

    [1] http://markmail.org/message/xzwt2r7acyj7n33t

    Related-Bug: #1266262
    Change-Id: I795d4165d668018658967661f593a9eb48652b2b

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (master)

Reviewed: https://review.openstack.org/142534
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=7517108e7ad40befc1f18a9978aa1080916f7246
Submitter: Jenkins
Branch: master

commit 7517108e7ad40befc1f18a9978aa1080916f7246
Author: Davanum Srinivas <email address hidden>
Date: Wed Dec 17 13:37:43 2014 -0500

    Support for ext4 as default filesystem for ephemeral disks

    The ext3 filesystem does orders of magnitude more I/O than ext4 in
    mkfs - a brief benchmark showed 14m to make a 1TB ext3 filesystem
    vs 7 seconds to make a 1TB ext4 filesystem, with the ext3 filesystem
    doing upwards of 6GB I/O.

    Since ext4 has been a default in all major Linux distributions for
    a long time now - RHEL5 has it as default, for instance - there is
    no reason to default to ext3: users that need ext3 can configure
    that themselves. So the default now is ext4 for all linux with
    this commit. Also note that for non-linux and non-windows
    the default used to be ext3, now it is vfat.

    Note that there is still support for ext3 as the default if some
    deployers do choose to keep that as the default, by using either
    virt_mkfs or default_ephemeral_format configuration option. We
    are just trying to move the default for everyone who is starting
    fresh.

    Originally logged by lifeless as I833356af81df743a63d4442d389be82bc25f3914,
    reverted in I8de225729bbc77b263fcac2fa72b0e9cc6c1b2bf by phil and re-proposed
    by swapnil in Ibe9e9ba4265125c5bd933cde1a93cca02511bb46

    DocImpact

    Closes-Bug: #1266262
    Change-Id: I92cb51c6118e48fd66ada0e2fee624597c4ad8f0

Changed in nova:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in nova:
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in nova:
milestone: kilo-2 → 2015.1.0
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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