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:
Chuck Thier 2013-06-28 14:40:54 +00:00
parent c6e53721e0
commit 581f7f5517
2 changed files with 23 additions and 11 deletions

View File

@ -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 the best all-around choice. If you decide to use a filesystem other than
XFS, we highly recommend thorough testing. XFS, we highly recommend thorough testing.
If you are using XFS, some settings that can dramatically impact For distros with more recent kernels (for example Ubuntu 12.04 Precise),
performance. We recommend the following when creating the XFS we recommend using the default settings (including the default inode size
partition:: 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. 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, 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 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 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 headroom.
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.
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 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 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 (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, /srv/node/sda). If you choose to mount the drives in another directory,

View File

@ -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. another device when creating the VM, and follow these instructions.
#. `fdisk /dev/sdb` (set up a single partition) #. `fdisk /dev/sdb` (set up a single partition)
#. `mkfs.xfs -i size=1024 /dev/sdb1` #. `mkfs.xfs /dev/sdb1`
#. Edit `/etc/fstab` and add #. Edit `/etc/fstab` and add
`/dev/sdb1 /mnt/sdb1 xfs noatime,nodiratime,nobarrier,logbufs=8 0 0` `/dev/sdb1 /mnt/sdb1 xfs noatime,nodiratime,nobarrier,logbufs=8 0 0`
#. `mkdir /mnt/sdb1` #. `mkdir /mnt/sdb1`
@ -93,7 +93,7 @@ If you want to use a loopback device instead of another partition, follow these
#. `mkdir /srv` #. `mkdir /srv`
#. `truncate -s 1GB /srv/swift-disk` #. `truncate -s 1GB /srv/swift-disk`
(modify size to make a larger or smaller partition) (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 #. Edit `/etc/fstab` and add
`/srv/swift-disk /mnt/sdb1 xfs loop,noatime,nodiratime,nobarrier,logbufs=8 0 0` `/srv/swift-disk /mnt/sdb1 xfs loop,noatime,nodiratime,nobarrier,logbufs=8 0 0`
#. `mkdir /mnt/sdb1` #. `mkdir /mnt/sdb1`
@ -701,7 +701,7 @@ Setting up scripts for running Swift
swift-init all stop swift-init all stop
find /var/log/swift -type f -exec rm -f {} \; find /var/log/swift -type f -exec rm -f {} \;
sudo umount /mnt/sdb1 sudo umount /mnt/sdb1
sudo mkfs.xfs -f -i size=1024 /dev/sdb1 sudo mkfs.xfs -f /dev/sdb1
sudo mount /mnt/sdb1 sudo mount /mnt/sdb1
sudo mkdir /mnt/sdb1/1 /mnt/sdb1/2 /mnt/sdb1/3 /mnt/sdb1/4 sudo mkdir /mnt/sdb1/1 /mnt/sdb1/2 /mnt/sdb1/3 /mnt/sdb1/4
sudo chown <your-user-name>:<your-group-name> /mnt/sdb1/* sudo chown <your-user-name>:<your-group-name> /mnt/sdb1/*