Coder Social home page Coder Social logo

Comments (11)

xandrus avatar xandrus commented on May 21, 2024

Hi,
Basically this is not good idea to do partition resize on a working file system and during read write operations.

By the way. Please check this option in /etc/mfs/mfshdd.cfg file.
~ at the beginning of the path means that significant change of total blocks count will not mark this drive as damaged. You can read more about it here.

from moosefs.

marcin-github avatar marcin-github commented on May 21, 2024

But why error " hdd_io_begin ..." appeared?

from moosefs.

pkonopelko avatar pkonopelko commented on May 21, 2024

Cześć @marcin-github,

Such fragile modifications shouldn't be done when processes are performing I/O operations on a filesystem (of course including mfschunkserver, but I mean in general). The proper way to do grow the filesystem is as follows:

  1. Enable maintenance mode for the specific Chunkserver via MFS CGI (tab Servers) or via MFSCLI: mfscli -CM1/ip_of_chunkserver/port_of_chunkserver
  2. Stop mfschunkserver process: mfschunkserver stop or your system's specific command (service... / systemctl...)
  3. Unmount the filesystem
  4. Grow (resize) the filesystem
  5. Start mfschunkserver process
  6. Disable maintenance mode for the specific Chunkserver via MFS CGI (tab Servers) or via MFSCLI: mfscli -CM0/ip_of_chunkserver/port_of_chunkserver

You can read more about Maintenance mode in "MooseFS 3.0 User's Manual" - Chapter 5.3 "Maintenance mode", p. 48. This document can be obtained from here.

Of course in case of any further questions, please don't hesitate to ask! :)

Best regards / Pozdrawiam
Peter / MooseFS Team

from moosefs.

jamarat avatar jamarat commented on May 21, 2024

How about unnecessary / at the end of /var/lib/mfs/chunks/ what makes double // :
/var/lib/mfs/chunks//00/chunk_00000000000001B8_00000009.mfs

from moosefs.

pkonopelko avatar pkonopelko commented on May 21, 2024

@jamarat: yes, double / can be removed, but it actually shouldn't affect I/O operations.

Resizing the filesystem in a mentioned by @marcin-github way may be dangerous for data stored on a filesystem. Fortunately MooseFS is fault-tolerant, so if you have goal >= 2, MooseFS will automatically replicate eventual missing chunk(s) from another copy.

from moosefs.

marcin-github avatar marcin-github commented on May 21, 2024

Cześć @OXide94 ,
I don't know what did you meant in "the currently resized block might be used by mfschunkserver". I resized filesystem many times while fs was under heavy load (postgres, mysql, or other services, on ext4 or xfs) and never ever I didn't had any issue with it. Only "issue" was frozed I/O for a while.

@jamarat double slash is because in mfshdd.cfg I have:
/var/lib/mfs/ - slash on the end.

from moosefs.

xandrus avatar xandrus commented on May 21, 2024

I would like to add that we added such a security - number of total blocks has been changed significantly in MooseFS chunkserver in case of hdd error.
We had such a situation when hard disk crashed and started to report 1PB HDD in system.

When you want to resize hard disk you have to add ~ at the beginning of hdd path.

from moosefs.

pkonopelko avatar pkonopelko commented on May 21, 2024

@marcin-github

I don't know what did you meant in "the currently resized block might be used by mfschunkserver".

Ok, sorry, I read everything once again. It is not true of course. I will edit and remove it from my previous reply not to mislead other users. I'm sorry.

Theoretically such resize (growing) of the filesystem should work properly on working, mounted FS. I just had a bad experience with it once in the past and now, when I have to do it, I always try to do it in the most safest way I can. Nevermind.

As @xandrus wrote:

When you want to resize hard disk you have to add ~ at the beginning of hdd path.

If you do so, mfschunkserver will not consider such HDD as damaged. (Of course after doing so, please don't forget to reload the Chunkserver process).

Peter / MooseFS Team

from moosefs.

marcin-github avatar marcin-github commented on May 21, 2024

Thanks for answers. I think that we are not focusing on the same problem but nevermind. I didn't have any data loss nor other problems so if you don't see anything wrong with it then it's also ok for me:)

from moosefs.

pkonopelko avatar pkonopelko commented on May 21, 2024

@marcin-github

Messages you mentioned:

Feb 10 13:42:08 ch1 mfschunkserver[10411]: hdd_io_begin: file:/var/lib/mfs/chunks//00/chunk_00000000000001CC_00000002.mfs - open error: ENOENT (No such file or directory)
Feb 10 13:42:09 ch1 mfschunkserver[10411]: set_chunk_version: file:/var/lib/mfs/chunks//00/chunk_00000000000001B8_00000008.mfs->/var/lib/mfs/chunks//00/chunk_00000000000001B8_00000009.mfs - rename error: ENOENT (No such file or directory)
Feb 10 13:42:18 ch1 mfschunkserver[10411]: hdd_io_begin: file:/var/lib/mfs/chunks//00/chunk_00000000000001BC_0000000A.mfs - open error: ENOENT (No such file or directory)

actually mean, that Chunkserver wanted to open chunk 1CC (1st), increase chunk's 1B8 version (2nd) an open chunk 1BC (3rd) - and in each case failed, because for some reason these files were not present.

We'll check it out with our developers next week and get back to you. What filesystem exactly do you have? XFS or EXT4?

Peter

from moosefs.

marcin-github avatar marcin-github commented on May 21, 2024

xfs, kernel 3.18. Thank you

from moosefs.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.