Update docs to use default XFS inode size
In past couple of years, the XFS team has greatly improved inode use in xfs. With more recent kernels, there is no performance penalty for using the default inode size, and a smaller inode size gives us improvements in other areas where disk access is involved. DocImpact Change-Id: Ie9da53a6e8bf43d1d02881befbb52595462c9f2e
This commit is contained in:
parent
c6e53721e0
commit
581f7f5517
@ -968,24 +968,36 @@ thorough testing with our use cases and hardware configurations, XFS was
|
||||
the best all-around choice. If you decide to use a filesystem other than
|
||||
XFS, we highly recommend thorough testing.
|
||||
|
||||
If you are using XFS, some settings that can dramatically impact
|
||||
performance. We recommend the following when creating the XFS
|
||||
partition::
|
||||
For distros with more recent kernels (for example Ubuntu 12.04 Precise),
|
||||
we recommend using the default settings (including the default inode size
|
||||
of 256 bytes) when creating the file system::
|
||||
|
||||
mkfs.xfs -i size=1024 -f /dev/sda1
|
||||
mkfs.xfs /dev/sda1
|
||||
|
||||
In the last couple of years, XFS has made great improvements in how inodes
|
||||
are allocated and used. Using the default inode size no longer has an
|
||||
impact on performance.
|
||||
|
||||
For distros with older kernels (for example Ubuntu 10.04 Lucid),
|
||||
some settings can dramatically impact performance. We recommend the
|
||||
following when creating the file system::
|
||||
|
||||
mkfs.xfs -i size=1024 /dev/sda1
|
||||
|
||||
Setting the inode size is important, as XFS stores xattr data in the inode.
|
||||
If the metadata is too large to fit in the inode, a new extent is created,
|
||||
which can cause quite a performance problem. Upping the inode size to 1024
|
||||
bytes provides enough room to write the default metadata, plus a little
|
||||
headroom. We do not recommend running Swift on RAID, but if you are using
|
||||
RAID it is also important to make sure that the proper sunit and swidth
|
||||
settings get set so that XFS can make most efficient use of the RAID array.
|
||||
headroom.
|
||||
|
||||
We also recommend the following example mount options when using XFS::
|
||||
The following example mount options are recommended when using XFS::
|
||||
|
||||
mount -t xfs -o noatime,nodiratime,nobarrier,logbufs=8 /dev/sda1 /srv/node/sda
|
||||
|
||||
We do not recommend running Swift on RAID, but if you are using
|
||||
RAID it is also important to make sure that the proper sunit and swidth
|
||||
settings get set so that XFS can make most efficient use of the RAID array.
|
||||
|
||||
For a standard swift install, all data drives are mounted directly under
|
||||
/srv/node (as can be seen in the above example of mounting /def/sda1 as
|
||||
/srv/node/sda). If you choose to mount the drives in another directory,
|
||||
|
@ -63,7 +63,7 @@ If you are going to use a separate partition for Swift data, be sure to add
|
||||
another device when creating the VM, and follow these instructions.
|
||||
|
||||
#. `fdisk /dev/sdb` (set up a single partition)
|
||||
#. `mkfs.xfs -i size=1024 /dev/sdb1`
|
||||
#. `mkfs.xfs /dev/sdb1`
|
||||
#. Edit `/etc/fstab` and add
|
||||
`/dev/sdb1 /mnt/sdb1 xfs noatime,nodiratime,nobarrier,logbufs=8 0 0`
|
||||
#. `mkdir /mnt/sdb1`
|
||||
@ -93,7 +93,7 @@ If you want to use a loopback device instead of another partition, follow these
|
||||
#. `mkdir /srv`
|
||||
#. `truncate -s 1GB /srv/swift-disk`
|
||||
(modify size to make a larger or smaller partition)
|
||||
#. `mkfs.xfs -i size=1024 /srv/swift-disk`
|
||||
#. `mkfs.xfs /srv/swift-disk`
|
||||
#. Edit `/etc/fstab` and add
|
||||
`/srv/swift-disk /mnt/sdb1 xfs loop,noatime,nodiratime,nobarrier,logbufs=8 0 0`
|
||||
#. `mkdir /mnt/sdb1`
|
||||
@ -701,7 +701,7 @@ Setting up scripts for running Swift
|
||||
swift-init all stop
|
||||
find /var/log/swift -type f -exec rm -f {} \;
|
||||
sudo umount /mnt/sdb1
|
||||
sudo mkfs.xfs -f -i size=1024 /dev/sdb1
|
||||
sudo mkfs.xfs -f /dev/sdb1
|
||||
sudo mount /mnt/sdb1
|
||||
sudo mkdir /mnt/sdb1/1 /mnt/sdb1/2 /mnt/sdb1/3 /mnt/sdb1/4
|
||||
sudo chown <your-user-name>:<your-group-name> /mnt/sdb1/*
|
||||
|
Loading…
Reference in New Issue
Block a user