GlusterFS has a client and server component. Servers are typically deployed as "storage bricks", with each server running a daemon to export a local file system as a "volume". The client process, which connects to servers with a custom protocol over TCP/IP, InfiniBand or Sockets Direct Protocol, creates composite virtual volumes from multiple remote servers using stackable "translators". By default, files are stored whole, but striping of files across multiple remote volumes is also possible. The client may mount the composite volume using a GlusterFS native protocol via the FUSE mechanism or using NFS v3 protocol using a built-in server translator, or access the volume via the client library. The client may re-export a native-protocol mount, for example via the kernel NFSv4 server, SAMBA, or the object-based OpenStack Storage (Swift) protocol using the "UFO" (Unified File and Object) translator.