IF YOU WOULD LIKE TO GET AN ACCOUNT, please write an
email to Administrator. User accounts are meant only to access repo
and report issues and/or generate pull requests.
This is a purpose-specific Git hosting for
BaseALT
projects. Thank you for your understanding!
Только зарегистрированные пользователи имеют доступ к сервису!
Для получения аккаунта, обратитесь к администратору.
This commit adds support for new mount scheme that is compliant with
other, non-LizardFS mounts. Instead of specifying master hostname, port
and subfolder in mount options, it is now possible to specify them as
mount user would probably expect, that is e.g.: `mfsmount
lizardfs-master:9421:/ /mnt/lizardf` instead of `mfsmount -o
mfssubfolder=/ -o mfsmaster=lizardfs-master -o mfsport=9421
/mnt/lizardfs`. New mount scheme applies both to /etc/fstab and CLI. Old
scheme is still supported for backward compability.
Fixes#822
Change-Id: Icb7bd6455e6c98493418bfd02602cea2dcc5f6ce
FUSE3 removed `-o nonempty` mount option, mounting over non-empty
directories is always allowed in FUSE3. This behaviour is undesirable in
lizardfs-client3 because running `mount -a` for shares mounted with
mfsmount3 resulted in multiple mounts of the same share. This commit
fixes this issue.
Fixes#807
Change-Id: I16888169857cf20302dcad4828c5ef83f808eb67
mount, doc: This commit introduces mfsmount -o nostdmountoptions that is
equivalent of the --nostdopts but unlike --nostdopts it can be used in
/etc/fstab as a mount option.
Fixes#802
Change-Id: I3316b129dd9296583e9cb66ac0dedcd640ba82e5
This commit turns on readahead cache by default.
It also clears polonise code to use default values from client.
Change-Id: Id7bb839e2fada43d8297bbec80e4a9a74fb428ea
This commit makes the following replication timeouts configurable:
- total timeout (previously - 60s);
- wave timeout (previously - 300ms);
- connection timeout (previously - 1s).
These changes allow replications to succeed even on very slow networks,
i.e. ones slower than 1MBps bandwidth and >1s TCP handshake time.
Change-Id: I81e910b94e2ab42adbad41261e997ae37ace25ce
This commit makes small modification to test loop,
so it counts number of operations more accurately.
Also default value of FILE_TEST_LOOP_MIN_TIME has been changed
from 300 to 3600 (to reduce master server load).
Change-Id: I35416acbc86ba4779ce5a427751db0fc0564df68
This commit adds SNAPSHOT_INITAL_BATCH_SIZE_LIMIT
configuration option for master.
Its value is used to limit initial batch size of
all snapshot requests.
Change-Id: Id3742c3c9af5d8d0897a7c96f54f4ed5f424e34c
This commit adds two options to makesnapshot command.
Usage:
-s <value> (Set initial batch size)
This option is used to specify number of nodes that
will be atomically cloned
-i (ignore missing source nodes in snapshot request)
SNAPSHOT_INITIAL_BATCH_SIZE - mfsmaster config option
that allows setting initial batch size of snapshot
requests (Default value is 1000)
Change-Id: Iff645ceadd37043d3575b2e1c29ffbef00967713
When set, any client that is running on the same node as a chunkserver
will prefer replicated chunks to be serviced by the local node.
Closes#250
Change-Id: I3d93baf34ee23ccf5e8dd6171d70db599d19ad15
This commit adds an option to set minimal number of
extra (above required) chunk parts available in order to
successfully write a chunk.
In case of a goal which by definition has less extra
chunk parts than given minimum, this option has no effect.
Closes#227
Change-Id: I1839e5e306c1dc6311d6f2ab0b85881cfc60bf94
This commit introduces master's awareness of chunkserver load
while picking servers for writing/reading/rebalancing.
After this patch, chunkservers with high I/O will be picked
less frequently, which would reduce their chances of overload.
This functionality works if ENABLE_LOAD_FACTOR is set to 1
in chunkserver's mfschunkserver.cfg config file.
It is currently disabled by default.
This commit also introduces LOAD_FACTOR_PENALTY configuration option
for master (mfsmaster.cfg). This percentage of penalty will be added
to each chunkserver's usage if it is heavily loaded,
which will result in picking it for operations less frequently.
Closes#307
Change-Id: Ie503ec4e61cc5086330e5f2cc029447de029231c
This commit adds option to change process of selecting
chunkservers for chunks.
If AVOID_SAME_IP_CHUNKSERVERS is set to 1, master will
try to avoid choosing chunkservers that share the same ip.
Change-Id: Ie0f1188e9a73b6ec9831431c188dbaf7f7a83083
This commit adds new tool which is used for removing
files and directories recursively.
It is advised to use this command once tools for stopping tasks
are available.
Closes#254
Change-Id: I2f1043a1b707c2db66ed4d37de08eb9a51935eee
This commit adds a functionality to filerepair utility:
with correct-only flag, a chunk will be restored from previous versions
if possible, but it will never be erased.
Closes#404
Change-Id: I5e26b99c4106470f923a32e5d0f6726144fb0243
This commit adds man pages to new mount options which allow configuring
readahead mechanism. It also makes readahead turned off by default.
Change-Id: I4b119729b8fef9e3cc6481dfb2e8d4b7a97f79cf
This commit adds a synonym to '-p' option which makes mount binary
prompt user for password before mounting.
Change-Id: Ifa84a3024f37ab6ba64bd5e400c212af91615c98
This commit introduces new means of using lizardfs tools.
From now on, tools can be used with command:
lizardfs [tool_name] [params]
(eg. old 'mfsgetgoal' is 'lizardfs getgoal')
Additionally, running 'lizardfs' command without
parameters opens a prompt that allows clients to
perform tools operations by their name
(eg. dirinfo [params])
and supports basic operations like 'cd' or 'ls'.
Change-Id: I35d72e46febc36677f38a22fc09f0cc187804225
This commit replaces REPLICATIONS_DELAY_DISCONNECT and
REPLICATIONS_DELAY_INIT config entries with OPERATIONS_DELAY_*.
New config entries have expanded responsibilities - they influence
more chunk operations than replication only:
- everything handled in chunk loop,
- periodic metadata checks.
REPLICATIONS_DELAY_* entries are deprecated, but work as new entries
to ensure backward compatibility.
Change-Id: I2f87219776c6aa5b763d891b3bc8177f046c0064
This commit adds loop watchdog to trash emptying routines.
From now on, trash will be cleared gradually in order not to hang
master for a long period of time (like previous implementation could).
This commit also deprecates EMPTY_TRASH_PERIOD configuration variable.
Change-Id: I02bdaf6b687be912e1d6af62cf87bb4580efe8ca
This commit modifies master so it uses hstorage classes
to store and compare file names.
There are two options available for storing file/directory names.
First one uses system memory and is enabled by default.
Second option uses Berkeley DB for storing names on disk.
New config options were introduced to manage name storage.
USE_BDB_NAME_STORAGE - if true then Berkeley DB is used
DBD_NAMESTORAGE_CACHE_SIZE - name cache size in MB (in system memory)
Additionally this commit modifies test framework, so it randomly
chooses one of the available storages.
Change-Id: I635929a30a5496e4e81433fdcd0cf313ca8876e9
This commit modifies chunkserver so it detects
zeros in chunk data and frees corresponding
file system blocks.
Configuration entry HDD_PUNCH_HOLES can be used
to enable this feature in chunkserver.
Closes#370
Change-Id: I06b94290e059a3583e5314f711017dd81437b191
This commit removes splice functionality from chunkserver.
While splice can bypass memory copying, it creates spurious situations
when descriptor is written to while being read from, which causes
inconsistent data to be read by client.
Change-Id: Ieb7d72c685e55a53929c83f9ae4db91dadfd733a
This commit enables bandwidthoveruse option to be passed to mount.
When set to 1.618, up to 61.8% more bandwidth would be used for fetching
redundant data from chunkservers. Thanks to that, read request will
be finished as soon as minimum required number of parts arrives.
Data sent by slowest chunkservers is discarded.
When set to 1.0, only required number of parts is requested from
chunkservers.
Example:
$ mfsmount -o bandwidthoveruse=1.618 mountpoint/
Change-Id: I54a90fea70926c63dbd56be13936415af073b613
This commit removes old MultiVariantReadPlanner class
and replaces it with ChunkReadPlanner. This requires
small changes to the rest of mount code (i.e. replacing
basicreadto parameter with wavereadto).
Change-Id: I7f67a6cb84e57619e63d55071a397448d01c4ead
Global file locks are necessary only for specific purposes
and they generate overhead in master, so this commit
disables them by default.
Change-Id: Ie8b22d9262aca1d8b10e386cc0bbe8bb7b839edf
This commit replaces default number of hdd workers per network worker
from 20 to 2. Previous value was proven to cause I/O overload on regular
disks.
Change-Id: Iff00b9f14ceb586a1365d0b42a534b7302b2d52f
This commit allows mount to enable or disable file locking features.
File locks are enabled by default.
If file lock management is disabled, all calls are handled by local
locking mechanism provided by FUSE.
Change-Id: Id6cb0cca9ab7f365ad2a1d58951c367154b2c8fa
This commit enables users to set symlink cache timeout in configuration file.
Additionally, default value was changed from 1 minute to 1 hour.
Change-Id: Ic5852931ec921b5f4f91611e08b61dba8278469b
This commit adds missing check of serving limit for endangered chunks.
Until now, chunks were still enqueued as endangered even if collecting
endangered chunks was disabled in config (by setting serving limit to 0).
It also introduces ENDANGERED_CHUNKS_MAX_CAPACITY config entry,
which limits memory usage of endangered chunks queue.
Default value for max capacity is 1Mi.
Change-Id: I98ef83701258b8495ce815fddfbca37b24c777b6
As a result of changes in structures describing goal,
format of goals config was extended.
This commit amends goal config loader to make it understand
the new format.
Change-Id: If50165f36d1fb4a94f3057e8fd7895ade16b1756
This commit removes support for increasing and
decreasing goal modifiers in setgoal.
With goal labels and different types of goals (like xor)
increasing/decreasing goal id leads to unpredictable
behaviour. Because there is no sensible modification to make
this option work it was removed altogether.
Test validating this functionality is also changed.
Change-Id: Ieb79bc5a76db9e7465c18f7a4557627ee8ce2419
This commit replaces old inode pool management code with
the one using new class IdPool. It's faster (constant time ops)
and it uses much less memory.
It also removes master/shadow dependency on exact behaviour
of id acquisition code and adds some sanity checks (like testing
if id pool was exhausted).
Change-Id: I08d7403edd049fcbcd6d111a3c856fb5d72fed8f
This patch adds option to increase CHUNK_LOOP frequency.
Additionaly it's now possible to set hard limit to CPU
usage by chunk processing loop.
Change-Id: Iba199ff0368deddcc4c97a4b7928e6726512f94c
ETC_PATH was always suffixed with "/etc", so this commit modifies this
variable to point to <prefix>/etc/mfs instead of <prefix>/etc. This is
also to make it work the same way as DATA_PATH, which is by default
/var/lib/mfs.
Change-Id: Ib42d9fff0b1cf5380b754f1f216008d339ac4f59