What's the difference between direct-IO (“losetup --direct-io”) and “mount -o sync” for loop-devices?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
0
down vote

favorite












I understand that without use of any flags, there are two caches involved with loop-devices. Once a page cache when writing to the file-system within the loop-device, and then again to the page cache when writing to the file-system of the underlying file. Is that correct?



The documentation of direct-IO says




--direct-io[=on|off] Enable or disable direct I/O for the backing file. The optional argument can be either on or off. If the argument is omitted, it defaults to on.




Does this mean that with this option, there is only a single cache, namely the cache for the filesystem of the underlying file?



The documentation of -o sync says




-o sync All I/O to the filesystem should be done synchronously. In the case of media with a limited number of write cycles (e.g. some flash drives), sync may cause life-cycle shortening.




Since in the past I had serious performance problems with sync filesystems on loop-mounts, and based on the warning about life-cycle shortening, I take this to mean that there's no cache anymore, not even for the underlying file. Data is written directly to the hardware.



Is this correct, or are matters more complicate?










share|improve this question

























    up vote
    0
    down vote

    favorite












    I understand that without use of any flags, there are two caches involved with loop-devices. Once a page cache when writing to the file-system within the loop-device, and then again to the page cache when writing to the file-system of the underlying file. Is that correct?



    The documentation of direct-IO says




    --direct-io[=on|off] Enable or disable direct I/O for the backing file. The optional argument can be either on or off. If the argument is omitted, it defaults to on.




    Does this mean that with this option, there is only a single cache, namely the cache for the filesystem of the underlying file?



    The documentation of -o sync says




    -o sync All I/O to the filesystem should be done synchronously. In the case of media with a limited number of write cycles (e.g. some flash drives), sync may cause life-cycle shortening.




    Since in the past I had serious performance problems with sync filesystems on loop-mounts, and based on the warning about life-cycle shortening, I take this to mean that there's no cache anymore, not even for the underlying file. Data is written directly to the hardware.



    Is this correct, or are matters more complicate?










    share|improve this question























      up vote
      0
      down vote

      favorite









      up vote
      0
      down vote

      favorite











      I understand that without use of any flags, there are two caches involved with loop-devices. Once a page cache when writing to the file-system within the loop-device, and then again to the page cache when writing to the file-system of the underlying file. Is that correct?



      The documentation of direct-IO says




      --direct-io[=on|off] Enable or disable direct I/O for the backing file. The optional argument can be either on or off. If the argument is omitted, it defaults to on.




      Does this mean that with this option, there is only a single cache, namely the cache for the filesystem of the underlying file?



      The documentation of -o sync says




      -o sync All I/O to the filesystem should be done synchronously. In the case of media with a limited number of write cycles (e.g. some flash drives), sync may cause life-cycle shortening.




      Since in the past I had serious performance problems with sync filesystems on loop-mounts, and based on the warning about life-cycle shortening, I take this to mean that there's no cache anymore, not even for the underlying file. Data is written directly to the hardware.



      Is this correct, or are matters more complicate?










      share|improve this question













      I understand that without use of any flags, there are two caches involved with loop-devices. Once a page cache when writing to the file-system within the loop-device, and then again to the page cache when writing to the file-system of the underlying file. Is that correct?



      The documentation of direct-IO says




      --direct-io[=on|off] Enable or disable direct I/O for the backing file. The optional argument can be either on or off. If the argument is omitted, it defaults to on.




      Does this mean that with this option, there is only a single cache, namely the cache for the filesystem of the underlying file?



      The documentation of -o sync says




      -o sync All I/O to the filesystem should be done synchronously. In the case of media with a limited number of write cycles (e.g. some flash drives), sync may cause life-cycle shortening.




      Since in the past I had serious performance problems with sync filesystems on loop-mounts, and based on the warning about life-cycle shortening, I take this to mean that there's no cache anymore, not even for the underlying file. Data is written directly to the hardware.



      Is this correct, or are matters more complicate?







      linux mount loop-device






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 10 mins ago









      Johannes Schaub - litb

      195127




      195127

























          active

          oldest

          votes











          Your Answer







          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "106"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          convertImagesToLinks: false,
          noModals: false,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













           

          draft saved


          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f475319%2fwhats-the-difference-between-direct-io-losetup-direct-io-and-mount-o-sy%23new-answer', 'question_page');

          );

          Post as a guest



































          active

          oldest

          votes













          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes















           

          draft saved


          draft discarded















































           


          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f475319%2fwhats-the-difference-between-direct-io-losetup-direct-io-and-mount-o-sy%23new-answer', 'question_page');

          );

          Post as a guest













































































          Popular posts from this blog

          How to check contact read email or not when send email to Individual?

          Displaying single band from multi-band raster using QGIS

          How many registers does an x86_64 CPU actually have?