diff --git a/doc/source/deployment_guide.rst b/doc/source/deployment_guide.rst index 8653375d03..8096f06647 100644 --- a/doc/source/deployment_guide.rst +++ b/doc/source/deployment_guide.rst @@ -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, diff --git a/doc/source/development_saio.rst b/doc/source/development_saio.rst index a6b621c486..dfd16c35bf 100644 --- a/doc/source/development_saio.rst +++ b/doc/source/development_saio.rst @@ -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 : /mnt/sdb1/*